我有一个PDF文件,该文件在页面的特定区域包含一些行(3);是否有可能在该特定区域中找到所有文本,并用固定的字符串重新放置?
答案 0 :(得分:0)
要在某些指定区域查找文本,可以创建自己的IEventListener
并使用它来解析页面。
有一个iText7官方示例,该示例显示了如何以这种方式处理图像。您可以通过听EventType.RENDER_TEXT
而不是EventType.RENDER_IMAGE
来方便地修改它。
https://github.com/itext/i7js-book/blob/develop/src/test/java/com/itextpdf/samples/book/part4/chapter15/Listing_15_31_MyImageRenderListener.java
https://github.com/itext/i7js-book/blob/develop/src/test/java/com/itextpdf/samples/book/part4/chapter15/Listing_15_30_ExtractImages.java
如@mkl注释中所建议,可以通过编辑区域并在其上绘制文本来进行替换。 请注意,仅在要编辑的文本上绘制白色的div或summat是不够的,因为它仍将出现在页面的内容流中。相反,可以使用iText的pdfSweep。修订后的代码将显示为摘要:
List <PdfCleanUpLocation> cleanUpLocations = new ArrayList<PdfCleanUpLocation>();
cleanUpLocations.add(new PdfCleanUpLocation(pageNum, new Rectangle(215, 780, 10, 30), colorToDrawUponTheArea));
PdfCleanUpTool cleaner = new PdfCleanUpTool(pdfDocument, cleanUpLocations);
cleaner.cleanUp();
然后可以使用ElementPropertyContainer#setFixedPosition
或Canvas
将字符串放置在编辑区域上。