【问题标题】:PDF text show in Google Chrome but not in Adobe AcrobatPDF 文本在 Google Chrome 中显示,但在 Adob​​e Acrobat 中不显示
【发布时间】:2011-11-28 20:03:50
【问题描述】:

我有一个很奇怪的问题。我使用 iTextSharp 创建的文档在 Adob​​e acrobat 中打开时显示为空,但在 Google Chrome 中可以正常工作。这是我用来生成文件的一些基本代码:

mDocument = new iTextSharp.text.Document(PageSize.A4, 0, 0, 0, 0);
mStream = new MemoryStream();
var writer = PdfWriter.GetInstance(mDocument, mStream);
var font = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.NOT_EMBEDDED);
mDocument.Open();
mContent = writer.DirectContent;
mContent.SetFontAndSize(font, 12);
mContent.SetTextMatrix(200, 200);
mContent.ShowText(value);
mDocument.Close();

有没有其他人遇到过这个问题或看到我遗漏的任何可能导致这个问题的东西。

BR
安德烈亚斯

【问题讨论】:

  • 您是直接将 PDF 写入OutputStream 还是生成并重定向到 PDF?

标签: c# pdf itextsharp


【解决方案1】:

刚刚找到问题的解决方案。 Adobe Acrobat 需要这个小改动才能工作。

mContent.BeginText(); // New line!!!
mContent.ShowText(value);
mContent.EndText(); // New line!!!

【讨论】:

  • 只是提醒您,在您开始使用DirectContent 的那一刻,您正在绕过 iText/iTextSharp “助手”,并假定您直接遵循 PDF 规范。如您所见,PDF 规范需要 BeginText (BT) 命令和匹配的 EndText (ET) 命令,但还有许多其他类似的规则。如果您愿意/需要,请务必使用它,不要做任何假设,如果您有任何问题,请查看 Adob​​e 的 PDF 规范。
猜你喜欢
  • 2018-01-09
  • 2011-02-13
  • 2010-09-07
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 2011-08-21
  • 1970-01-01
相关资源
最近更新 更多