Java 在iText中查找不可见文本

Java 在iText中查找不可见文本,java,itext,Java,Itext,我正在使用iText创建多页的PDF文档。我在这个文档中间的一页上添加了一些独特的文本,但是使它成为不可见的--/p> 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.ALI

我正在使用iText创建多页的PDF文档。我在这个文档中间的一页上添加了一些独特的文本,但是使它成为不可见的--/p>
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));  
添加此不可见文本的原因是为了在
onedpage()时识别此特定页面。但它正在失败。
要在
onedpage()
中实现,我有以下代码-

boolean b = (pdfWriter.getDirectContent().toString()).contains("invisible text here");
我将
b
的值获取为
false

如果我比较该页面上的任何其他文本(可见),结果
b
true

我试图在PDF阅读器中手动搜索不可见的文本,它会找到文本。

我可以修改什么来实现这一点?

假设您可以在不进行详细解析的情况下识别内容中的文本,这绝不是一个好主意。文本可以分为多个部分,编码可能不是平台的默认字符编码,等等。。。因此,不要尝试像这样的事情

boolean b = (pdfWriter.getDirectContent().toString()).contains("invisible text here");
你可以实现你的目标

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

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


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

太好了。我完全按照你的建议做了。事实上,在调试时,我甚至可以看到我的类实现的所有成员,但我没有意识到要添加一个成员,然后按照您的建议稍后检查它。非常感谢。