我在执行一个简单的操作:在使用.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上找到图像(请参阅下面的代码框中的文字链接)。 –