我在執行一個簡單的操作:在使用.NET Framework 4.0和MVC的PDFsharp v1.32.2608.0從頭開始生成的PDF文件中添加一張照片(JPG文件)。 NETPDFsharp,錯誤在PDF中顯示JPG
我用下面的代碼來執行此操作:
PdfDocument doc = new PdfDocument();
PdfPage pag = doc.AddPage();
XGraphics gfx = XGraphics.FromPdfPage(pag);
Image foto = Image.FromStream([stream]);
XImage xfoto = XImage.FromGdiPlusImage(foto);
gfx.DrawImage(xfoto, 30, 130, 380, 250);
MemoryStream stream = new MemoryStream();
doc.Save(stream, false);
的問題是,當我打開PDF文件時,圖像會出現錯誤,損壞,破碎......我不知道如何解釋它,您可以下載原始照片和在下一個public Dropbox folder中生成的PDF以查看結果。
這個錯誤是不一致的,一些照片有這個確切的問題,其他一些沒有,我不知道爲什麼。也許是文件中的格式或類似的東西?如果這是問題,哪些格式是有效的?
任何幫助將不勝感激。
編輯:我注意到的一點是,錯誤的圖像看起來不同,這取決於哪個程序可視化PDF。例如,如果您使用Dropbox的可視化工具(使用我提供的鏈接)看到PDF,圖像看起來很好;如果我使用Chrome PDF查看器,圖像是錯誤的,但只出現在黑色和白色條紋,但仍然可見;如果我使用Adobe Acrobat Reader DC,圖像仍然是錯誤的,但完全無法識別。
編輯2:我更改爲PDFSharp v1.50.4000(測試版3),看看它可能是庫的問題,但問題仍然是一樣的。該代碼,使用新版本,是如下:當您使用PDFsharp 1.50或更高版本,並使用XImage.FromStream
代替Image.FromStream
加XImage.FromGdiPlusImage
PdfDocument doc = new PdfDocument();
PdfPage pag = doc.AddPage();
XGraphics gfx = XGraphics.FromPdfPage(pag);
XImage xfoto = XImage.FromStream([stream]);
gfx.DrawImage(xfoto, 30, 130, 380, 250);
MemoryStream stream = new MemoryStream();
doc.Save(stream, false);
考慮到你的編輯,這裏可能存在JPG格式的問題......你可以分享它進行檢查嗎? – mkl
@mkl可以在Dropbox上找到圖像(請參閱下面的代碼框中的文字鏈接)。 –