使用pdfbox实现pdf文本提取和合并功能示例



// 引入必要的库
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;

import java.io.*;

public class PDFBoxExample {

    // 方法:从PDF中提取文本
    public static String extractTextFromPDF(String filePath) throws IOException {
        PDDocument document = null;
        try {
            document = PDDocument.load(new File(filePath));
            if (!document.isEncrypted()) {
                PDFTextStripper stripper = new PDFTextStripper();
                return stripper.getText(document);
            } else {
                throw new IOException("PDF文档已加密");
            }
        } finally {
            if (document != null) {
                document.close();
            }
        }
    }

    // 方法:合并多个PDF文件
    public static void mergePDFs(String[] sources, String destination) throws IOException {
        PDDocument result = null;
        try {
            result = new PDDocument();
            for (String src : sources) {
                PDDocument document = PDDocument.load(new File(src));
                result.addDocument(document);
                document.close();
            }
            result.save(destination);
        } finally {
            if (result != null) {
                result.close();
            }
        }
    }

    public static void main(String[] args) {
        try {
            // 提取PDF文本示例
            String filePath = "path/to/your/document.pdf";
            String text = extractTextFromPDF(filePath);
            System.out.println(text);

            // 合并PDF示例
            String[] sourceFiles = {"path/to/first.pdf", "path/to/second.pdf"};
            String destinationFile = "path/to/merged.pdf";
            mergePDFs(sourceFiles, destinationFile);
            System.out.println("PDF文件合并完成!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

以上示例展示了如何使用Apache PDFBox库来提取PDF文件中的文本和合并多个PDF文件。确保你的项目中已经包含了PDFBox的依赖。此代码包含了两个方法:`extractTextFromPDF`用于从指定路径的PDF文件中提取文本,`mergePDFs`用于将多个PDF文件合并为一个。`main`方法演示了如何调用这两个方法。

注意:为了运行这段代码,你需要在你的项目中添加PDFBox的依赖。如果你使用的是Maven,可以在`pom.xml`中添加相应的依赖项。


<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>pdfbox</artifactId>
    <version>2.0.24</version> <!-- 请根据需要替换为最新版本 -->
</dependency>

记得检查PDFBox的最新版本并替换到上述依赖中。