要使用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”的新文件,其中包含所有输入文件的内容。