【问题标题】:Generate a .pdf starting from a .jpg从 .jpg 开始生成 .pdf
【发布时间】:2014-06-04 11:10:48
【问题描述】:

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

输出文件在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()

【问题讨论】:

  • 有什么“问题”?
  • 您是否在每个客户端上使用相同的 pdf 查看器(完全相同的版本)?你在 xp 上遇到什么错误?
  • 您能提供输出 PDF 的链接吗?

标签: vb.net pdf itextsharp


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    我很高兴代码没有任何问题。另一个可能的原因(除了同行所说的)可能是 PDF 复制不正确。例如:假设使用了将所有二进制字节转换为纯 ASCII 的文件传输协议。然后你会得到一个只有空白页的 PDF。

    很遗憾,您没有共享 PDF,也没有告诉我们 PDF 有什么问题:“有问题”非常含糊。它打开了吗?如果不是,错误信息是什么?如果是这样,你看到了什么?页数是否正常?如果是这样,页面是空白的吗?如果是这样,您复制的文件不正确。

    【讨论】:

      猜你喜欢
      • 2019-05-29
      • 1970-01-01
      • 2016-03-14
      • 1970-01-01
      • 2010-10-08
      • 2022-09-28
      • 2015-08-18
      • 2016-11-09
      • 1970-01-01
      相关资源
      最近更新 更多