2

次のコードを使用して、2 つの pdf をマージしています。

File firstPdfFile = new File("firstPdf.pdf"); 
File secondPdfFile = new File("secondPdf.pdf"); 
PDFMergerUtility merger = new PDFMergerUtility(); 
merger.addSource(firstPdfFile);     
merger.addSource(secondPdfFile); 
String pdfPath = "PdfFile.pdf"; 
OutputStream bout2 = new BufferedOutputStream(new FileOutputStream(pdfPath)); 
merger.setDestinationStream(bout2); 
merger.mergeDocuments();    
File pdfFile = new File(pdfPath);

マージされた pdf を正しく取得していますが、この pdf ファイルにページ番号を追加したいと考えています。

4

2 に答える 2

1

このコードを試してください。

    File firstPdfFile = new File("firstPdf.pdf");
    File secondPdfFile = new File("firstPdf.pdf");
    PDFMergerUtility merger = new PDFMergerUtility();
    merger.addSource(firstPdfFile);
    merger.addSource(secondPdfFile);
    String pdfPath = "PdfFile.pdf";
    OutputStream bout2 = new BufferedOutputStream(new FileOutputStream(pdfPath));
    merger.setDestinationStream(bout2);
    merger.mergeDocuments();

    PDDocument doc = null;
    try {
        URL file = new URL("file:///PdfFile.pdf");
        doc = PDDocument.load(file);

        List<?> allPages = doc.getDocumentCatalog().getAllPages();
        PDFont font = PDType1Font.HELVETICA_BOLD;
        float fontSize = 36.0f;
        for (int i = 0; i < allPages.size(); i++) {
            PDPage page = (PDPage) allPages.get(i);
            PDPageContentStream footercontentStream = new PDPageContentStream(doc, page, true, true);
            footercontentStream.beginText();
            footercontentStream.setFont(font, fontSize);
            footercontentStream.moveTextPositionByAmount((PDPage.PAGE_SIZE_A4.getUpperRightX() / 2), (PDPage.PAGE_SIZE_A4.getLowerLeftY()));
            footercontentStream.drawString(String.valueOf(i + 1));
            footercontentStream.endText();
            footercontentStream.close();
        }
        doc.save("PdfFile.pdf");
    } finally {
        if (doc != null) {
            doc.close();
        }
    }
于 2014-01-16T09:40:07.097 に答える