从.jpg开始生成.pdf

时间:2014-06-04 11:10:48

标签: vb.net pdf itextsharp

我使用此代码生成" output.pdf"从" input.jpg"开始。

在win7 / win8上可以毫无问题地查看输出文件,但在winXP机器上有问题。我的代码出了什么问题?

dw = System.Drawing.Image.FromFile(InputFile)
img = iTextSharp.text.Image.GetInstance(dw, Imaging.ImageFormat.Jpeg)
img.ScalePercent((72.0 / img.DpiX) * 100)

Dim psPageSize As New iTextSharp.text.Rectangle(0, 0, img.ScaledWidth,img.ScaledHeight)
Dim document As iTextSharp.text.Document
document = New Document(psPageSize, 0, 0, 0, 0)
Dim writer As PdfWriter
writer = PdfWriter.GetInstance(document, New FileStream(OutputFile, FileMode.Create))
document.Open()
document.Add(img)
document.Close()

2 个答案:

答案 0 :(得分:0)

您的代码没有任何问题。问题出在windows xp机器上,或者是在该机器上部署的pdf viewer软件。检查pdf viewer软件的版本并将其升级到最新版本。如果它不起作用,您可以尝试更改pdf中的pdf版本(尝试查找pdf查看器支持的版本):

PdfReader reader = new PdfReader(pdfPath);
PdfStamper stamper = new PdfStamper(reader, outputStream);
stamper.setPdfVersion(PdfWriter.PDF_VERSION_1_4);
stamper.close();

答案 1 :(得分:0)

我觉得代码没什么问题。另一个可能的原因(除了同行所说的)可能是PDF被错误地复制了。例如:假设使用了一个文件传输协议,将所有二进制字节转换为纯ASCII。那么你就有一张PDF,只有空白页面。

不幸的是,你没有分享PDF而且你没有告诉我们PDF有什么问题:“有问题”非常模糊。它打开了吗?如果没有,错误信息是什么?如果是这样,你看到了什么?页数是否正常?如果是,页面是否为空白?如果是这样,您就错误地复制了文件。