0

我正在使用 iText 创建多页的 PDF 文档。我在本文档中间的一页上添加了一些独特的文本,但使其不可见,因为-

Chunk chunk = new Chunk("invisible text here");
chunk.setTextRenderMode(PdfContentByte.TEXT_RENDER_MODE_INVISIBLE, 0f, null);
com.lowagie.text.Document iTextDoc.add(new Paragraph(Element.ALIGN_JUSTIFIED, chunk));  

添加这个不可见文本的原因是为了在onEndPage(). 但它失败了。
为了实现onEndPage(),我有以下代码 -

boolean b = (pdfWriter.getDirectContent().toString()).contains("invisible text here");

我得到bas的值false
如果我比较该页面上的任何其他文本(可见)结果btrue.
我试图在 PDF 阅读器中手动搜索不可见的文本并找到文本。
我可以修改什么来实现这一点?

4

1 回答 1

2

假设您可以在不进行复杂解析的情况下识别内容中的文本,这绝不是一个好主意。文本可能被分成多个段,编码可能不是平台的默认字符编码等......因此不要尝试类似

boolean b = (pdfWriter.getDirectContent().toString()).contains("invisible text here");

你可以实现你的目标

添加此不可见文本的原因是在 onEndPage() 时识别此特定页面。

更容易。只需将一个成员添加到您的PdfPageEvent实现中,即带有您的onEndPage()方法的类,并将其设置为您用于将不可见页面内容添加到您用于添加到页面的文本的位置。

现在您可以直接在您的onEndPage().不要忘记重置该变量,最好是在onEndPage()其本身中直接测试该成员变量!

于 2013-07-10T12:07:48.277 回答