【发布时间】:2013-12-13 23:48:30
【问题描述】:
我目前正在使用 ITextSharp,并使用 IText in Action Second edition,特别是第 74 页使用 ColumnText 对象。
我正在使用 PDFReader 和 PDFStamper 类加载 PDF 文件,并尝试在 PDF 文档中添加多个元素。
PdfStamper pdfStamper = new PdfStamper(pdfReader, fileStream);
PdfContentByte canvas = pdfStamper.GetOverContent(1);
Rectangle size = pdfReader.GetPageSizeWithRotation(1);
ColumnText ct = new ColumnText(canvas);
//I have multiple calls like below, with different x,y coords
ct.SetSimpleColumn(10, 634, 100, 642);
ct.AddText(new Chunk("1234567890 999 9 9 999000 0 877"));
ct.Go();
我注意到的是文本将停止然后开始自行覆盖(同一列?)。我基本上需要它在到达边界尽头时停止。我不需要额外的文本显示在另一列中。
我已阅读有关 ColumnText.HasMoreText 检查以及 Go() 返回的内容。在这种情况下,它将返回我认为是 2 的 NO_MORE_COLUMNS。
我不明白如何在没有文字写在自身之上的情况下使截断正常工作。
文本显示为“019 298397 4795 69 7989990000”,您可以看到它开始自行覆盖。
如果有人可以帮助我解决这个问题,我将不胜感激。如果我需要澄清,也请告诉我。
【问题讨论】:
-
我已尝试使用最新版本的 iText 重现该问题,但无法重现该问题。也许您使用的是旧版本并且遇到了已修复的错误。
-
好的,我将 ITextSharp 更新到 5.4.4,但我仍然得到重叠。你能不能给我看看你的测试代码,让我看看它是否适合我?
-
我在一些示例代码中添加了Gist,这些示例代码正在执行我所说的操作。如果您运行该代码并查看 Test2.pdf,您将看到文本重叠。同样,如果我遗漏了什么,请告诉我。
标签: itextsharp