PDFBox与Java并排合并2个pdf文件

时间:2018-10-06 06:53:52

标签: java pdf pdf-generation pdfbox

我比较2个pdf文件并在其上标记高亮。 当我使用pdfbox合并以进行比较时。缺少突出显示错误。

combine pdfs

我正在使用此功能: 合并2个文件pdf并使其所有页面并排的功能。

rails db:migrate

1 个答案:

答案 0 :(得分:1)

在“必须导入源PDF页面”部分中将其插入代码中以复制注释。正确的PDF的矩形必须移动。

// copy annotations
PDPage src1Page = pdf1.getPage(pageNum);
PDPage src2Page = pdf2.getPage(pageNum);
for (PDAnnotation ann : src1Page.getAnnotations())
{
    outPdfPage.getAnnotations().add(ann);                
}
for (PDAnnotation ann : src2Page.getAnnotations())
{
    PDRectangle rect = ann.getRectangle();
    ann.setRectangle(new PDRectangle(rect.getLowerLeftX() + pdf1Frame.getWidth(), rect.getLowerLeftY(), rect.getWidth(), rect.getHeight()));
    outPdfPage.getAnnotations().add(ann);                
}

请注意,此代码有一个缺陷-它仅适用于带有外观流的注释(大多数都有注释)。对于那些没有的人,它将产生奇怪的效果,在这种情况下,将不得不根据注释类型来调整坐标。对于高光,将是四点,对于直线,将是直线坐标,等等,等等。