要使用Java和iText庫的PDFStamper來合并PDF文件,請按照以下步驟操作:
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13.2</version>
</dependency>
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfImportedPage;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfWriter;
import java.io.FileOutputStream;
import java.io.IOException;
public class PDFMergeExample {
public static void main(String[] args) {
String[] inputFiles = {"input1.pdf", "input2.pdf", "input3.pdf"};
String outputFile = "output.pdf";
mergePDFs(inputFiles, outputFile);
}
public static void mergePDFs(String[] inputFiles, String outputFile) {
Document document = new Document();
try {
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(outputFile));
document.open();
PdfContentByte cb = writer.getDirectContent();
for (String inputFile : inputFiles) {
PdfReader reader = new PdfReader(inputFile);
int numberOfPages = reader.getNumberOfPages();
for (int page = 0; page< numberOfPages; ) {
document.newPage();
PdfImportedPage importedPage = writer.getImportedPage(reader, ++page);
cb.addTemplate(importedPage, 0, 0);
}
}
document.close();
} catch (IOException | DocumentException e) {
e.printStackTrace();
}
}
}
在此示例中,我們定義了一個名為mergePDFs
的方法,該方法接受一個包含輸入文件路徑的字符串數組和一個輸出文件路徑。我們創建一個Document
對象,然后使用PdfWriter
將其與輸出文件關聯。接下來,我們遍歷輸入文件,為每個文件創建一個PdfReader
,并將其頁面添加到輸出文檔中。
要運行此示例,請將inputFiles
數組替換為您要合并的PDF文件的路徑,并將outputFile
變量設置為所需的輸出文件路徑。運行程序后,您應該會看到一個名為“output.pdf”的新文件,其中包含所有輸入文件的內容。