简体   繁体   English

如何在 unity c# 中使用 itext7 将图像添加到 pdf?

[英]How do I add image to pdf using itext7 in unity c#?

I am trying to add an image to my pdf document using itext7 but I am getting DirectoryNotFoundException.我正在尝试使用 itext7将图像添加到我的pdf 文档,但我收到DirectoryNotFoundException。 I was using itextsharp which worked but the same is not the case with itext7, some similar questions from StackOverflow showed me how it's done but it doesn't read the file which is in the Assets Folder .我使用的 itextsharp 有效,但 itext7 的情况并非如此,StackOverflow 的一些类似问题向我展示了它是如何完成的,但它没有读取Assets Folder中的文件 Here is my code:这是我的代码:

  var exportFolder = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
  var exportFile = System.IO.Path.Combine(exportFolder, "Myfile.pdf"); 

    //Create Writer
    var writer = new PdfWriter(exportFile);

    //Create Pdf Document Object
    var pdf = new PdfDocument(writer);

    //Create A Document
    Document document = new Document(pdf, PageSize.A4);

    //Add Cover Page 1

    ImageData imagedata = ImageDataFactory.Create("Ganesh.jpg");
    iText.Layout.Element.Image coverImage = new iText.Layout.Element.Image(imagedata);

    document.Add(coverImage);

    document.Add(new iText.Layout.Element.AreaBreak());
    document.Close();

when I run this code with a button click event it throws this error:当我使用按钮单击事件运行此代码时,它会引发此错误:

DirectoryNotFoundException: Could not find a part of the path "C:\\Users\\Public\\Documents\\LO%20SHU%20GRID%20Windows\\Ganesh.jpg". System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean anonymous, System.IO.FileOptions options) (at <7ba07f088431485bb722f3b3373e87ee>:0) System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean isAsync, System.Boolean anonymous) (at <7ba07f088431485bb722f3b3373e87ee>:0) System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access) (at <7ba07f088431485bb722f3b3373e87ee>:0) (wrapper remoting-invoke-with-check) System.IO.FileStream..ctor(string,System.IO.FileMode,System.IO.FileAccess) iText.IO.Util.UrlUtil.OpenStream (System.Uri url) (at <57da1b8d8a184e278c732544ebe6412a>:0) iText.IO.Image.ImageDataFactory.ReadImageType (System.Uri source) (at <57da1b8d8a184e278c732544ebe6412a>:0) Rethrow as IOException: io.exception iText.IO.Image.ImageDataFactory.ReadImageType (System.Uri source) (at <57da1b8d8a184e278c732544ebe6412a>:0) iText.IO.Image.ImageDataFactory.CreateImageInstance (System.Uri source, System.Boolean recoverImage) (at <57da1b8d8a184e278c732544ebe6412a>:0) iText.IO.Image.ImageDataFactory.Create (System.Uri url, System.Boolean recoverImage) (at <57da1b8d8a184e278c732544ebe6412a>:0) iText.IO.Image.ImageDataFactory.Create (System.String filename, System.Boolean recoverImage) (at <57da1b8d8a184e278c732544ebe6412a>:0) iText.IO.Image.ImageDataFactory.Create (System.String filename) (at <57da1b8d8a184e278c732544ebe6412a>:0) Panel.EnglishPdf () (at Assets/Scripts/Panel.cs:5755) UnityEngine.Events.InvokableCall.Invoke () (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:166) UnityEngine.Events.UnityEvent.Invoke () (at C:/buildslave/unity/build/Runtime/Export/UnityEvent_0.cs:58) UnityEngine.UI.Button.Press () (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Button.cs:66) UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Button.cs:108) UnityEngine.EventSystems.ExecuteEvents.Execute (UnityEngine.EventSystems.IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/EventSystem/ExecuteEvents.cs:50) UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction1[T1] functor) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/EventSystem/ExecuteEvents.cs:261)

I would be very grateful if any kind soul would help me fix this error.如果任何好心人能帮助我解决这个错误,我将不胜感激。

I fixed it by converting image to bytearray.我通过将图像转换为字节数组来修复它。 Thanks.谢谢。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM