使用 java 中的 pdfbox 将文本叠加到先前创建的 pdf 文档上

Using pdfbox in java to overlay text onto previously created pdf document

我已经创建了几个 PDF 文档。我正在尝试做的是使用 PDFBox。我需要将文本放入这些创建的文档的多个位置,但我不想修改这些区域中的文本。例如,可能有一个 a 部分如下 -

姓名:______________________________

我会把文字放到那个区域,但我需要下划线保持相同的长度。我相信最好的解决方案是只创建一个文本框或类似的区域,使该行保持相同的长度。

换句话说,我不想编辑内联文本,因此它会保持相同的长度。我没有这方面的代码,因为我只是想了解 pdfbox 包。我一直在网上寻找示例,但其中大部分只是展示如何创建文档,而不是如何更新以前的文档。我该怎么做?

如果我没理解错的话,您想在现有 pdf 文档中为文本加下划线。您可以尝试使用 Java Itext,查看此示例,看看是否有帮助。

http://tutorials.jenkov.com/java-itext/underline-strikethrough.html

我找到了答案并想分享。

在 pdfbox 包中有一个 class 叫做 Overlay。

    PDDocument pdfDocument = new Overlay();
    PDDocument final = pdfDocument.overlay(PDDocument firstDoc, PDDocument otherDoc);

firstDoc 将覆盖在 otherDoc 上。十分简单。我只是不知道去哪里看。

如需具体使用示例,可​​参考PDFBox reposity中的OverlayPDF.java:

Overlay overlayer = new Overlay();
overlayer.setInputFile(inputFile);  //the file to be overlayed

PDDocument result = overlayer.overlay(overlayFile); //This will add overlays to a documents.
result.save(outputFilename);
result.close();
overlayer.close();  //close the input files AFTER saving the resulting file