使用IText或PDFBox在Java中的另一个PDF文件之间合并PDF文件

时间:2019-02-18 11:13:18

标签: java itext pdf-generation pdfbox

我有两个PDF文件A和B,我有一个条件,我需要根据条件合并这两个PDF文件。例如,如果我在A中找到类似“附加PDF”的字符串,则必须合并将B文件从A中的特定页面转换成A。例如,如果我发现A文件中第3页中的单词,则需要合并第3页中的B文件。我正在使用I-Text 5.5.10。是否可以在I-Text或PDFBox中实现此目的。这是我到目前为止尝试过的。

  public static void mergePdf() throws IOException, DocumentException 
{
    PdfReader reader1 = new PdfReader("C:\\Users\\user1\\Downloads\\generatedSample.pdf");
    PdfReader reader2 = new PdfReader("C:\\Users\\user1\\Desktop\\sample1.pdf");
    Document document = new Document();
    document.addHeader("Header Text", "");
    FileOutputStream fos = new FileOutputStream("C:\\Users\\user1\\Downloads\\MergeFile.pdf");
    PdfCopy copy = new PdfCopy(document, fos);
    document.open();
    PdfImportedPage page;
    PdfCopy.PageStamp stamp;
    Phrase phrase;
    BaseFont bf = BaseFont.createFont();
    Font font = new Font(bf, 9);
    int n = reader1.getNumberOfPages();

    for (int i = 1; i <= reader1.getNumberOfPages(); i++) 
    {
        page = copy.getImportedPage(reader1, i);
        stamp = copy.createPageStamp(page);
        ColumnText.showTextAligned(stamp.getOverContent(), Element.ALIGN_CENTER, null, 520, 5, 0);
        stamp.alterContents();
        copy.addPage(page);
    }

    for (int i = 1; i <= reader2.getNumberOfPages(); i++) 
    {
        page = copy.getImportedPage(reader2, i);
        stamp = copy.createPageStamp(page);
        ColumnText.showTextAligned(stamp.getOverContent(), Element.ALIGN_CENTER, null, 520, 5, 0);
        stamp.alterContents();
        copy.addPage(page);
    }
    document.close();
    reader1.close();
    reader2.close();
}

谢谢您的解决方案!

0 个答案:

没有答案