使用RenderListener界面在PDF中查找文本时无法获取页码

使用RenderListener界面在PDF中查找文本时无法获取页码,pdf,itext,Pdf,Itext,iText需要坐标才能在不同位置的现有PDF中创建表单字段和页码 我的PDF是动态的。所以我决定用一些标识符文本创建PDF。并使用TextRenderInfo查找文本的坐标,并使用这些坐标创建textfields和其他表单字段 问题是我在ParsingHelloWorld类的extractText方法中有一个页码。 当在MyTextRenderListener类内部处理页面内容时调用renderText方法时,我无法获取页码以在标识符文本所在的特定坐标处生成PDF中的字段(例如Fill_in_

iText需要坐标才能在不同位置的现有PDF中创建表单字段和页码

我的PDF是动态的。所以我决定用一些标识符文本创建PDF。并使用TextRenderInfo查找文本的坐标,并使用这些坐标创建textfields和其他表单字段

问题是我在
ParsingHelloWorld
类的extractText方法中有一个页码。 当在MyTextRenderListener类内部处理页面内容时调用renderText方法时,我无法获取页码以在标识符文本所在的特定坐标处生成PDF中的字段(例如Fill_in_TextField、Fill_in_SignatureField..等等)

在我的场景中获取页码的任何建议/想法


提前谢谢。

那很容易。将参数添加到MyTextListener:

listener.setPage(pageNum);
现在,当您在
ParsingHelloWorld
中循环页面时,将页码传递给
mytextlister

listener.setPage(pageNum);
现在您可以在
renderText()
方法中访问该数字,并可以将其传递给
createTextField()
方法


请注意,我认为您的循环是错误的。页码不是从第0页开始,而是从第1页开始。

如何将页码成员变量添加到
MyTextRenderListener
中,您可以在文档页面的循环中设置该变量,然后将其转发到renderInfo参数旁边的createTextField或createSignatureField方法。顺便说一句,如果原始标记是内联的,那么test renderInfo.getText().startsWith(“Fill_in_…)可能会失败,如果应用了额外的紧排,它也可能会失败。
listener.setPage(pageNum);