Warm tip: This article is reproduced from stackoverflow.com, please click
.net c# image unity3d itext7

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

发布于 2020-03-27 15:42:11

I am trying to add an image to my pdf document using itext7 but I am getting 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. 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.

Questioner
Divyanshu Agarwal
Viewed
627
Divyanshu Agarwal 2020-01-31 16:35

I fixed it by converting image to bytearray. Thanks.