Apache PDFBox 是一个用 Java 编写的开源库,能够处理 PDF 文档。自其发布以来,PDFBox 在处理 PDF 文件的读取、生成和修改等方面得到了广泛应用。在这篇文章中,我们将探讨 PDFBox 3.0.3 的基本用法,并提供一些代码示例,帮助大家更好地理解如何操作 PDF 文件。
基本特性
PDFBox 可以实现以下功能: 1. 创建新的 PDF 文档。 2. 读取现有 PDF 文档。 3. 修改 PDF 文档。 4. 提取文本、图像和元数据。 5. 添加水印、签名等内容。
环境配置
在使用 PDFBox 之前,首先需要将其添加到项目依赖中。如果你使用 Maven 作为构建工具,可以在 pom.xml
中添加以下依赖:
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>3.0.3</version>
</dependency>
创建 PDF 文档
下面的示例展示了如何使用 PDFBox 创建一个简单的 PDF 文档,并向其中添加文本。
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
import java.io.IOException;
public class CreatePDF {
public static void main(String[] args) {
PDDocument document = new PDDocument();
PDPage page = new PDPage();
document.addPage(page);
try (PDPageContentStream contentStream = new PDPageContentStream(document, page)) {
contentStream.beginText();
contentStream.setFont(PDType1Font.HELVETICA, 12);
contentStream.newLineAtOffset(100, 700);
contentStream.showText("Hello, PDFBox!");
contentStream.endText();
} catch (IOException e) {
e.printStackTrace();
}
try {
document.save("HelloWorld.pdf");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
document.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
读取 PDF 文档
接下来,我们来看一个读取 PDF 文档的示例,提取文本内容。
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;
import java.io.File;
import java.io.IOException;
public class ReadPDF {
public static void main(String[] args) {
File file = new File("HelloWorld.pdf");
try (PDDocument document = PDDocument.load(file)) {
PDFTextStripper pdfStripper = new PDFTextStripper();
String text = pdfStripper.getText(document);
System.out.println("PDF内容:");
System.out.println(text);
} catch (IOException e) {
e.printStackTrace();
}
}
}
修改 PDF 文档
最后,我们来看如何修改现有的 PDF 文档,例如添加内容或水印:
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
import java.io.File;
import java.io.IOException;
public class ModifyPDF {
public static void main(String[] args) {
File file = new File("HelloWorld.pdf");
try (PDDocument document = PDDocument.load(file)) {
PDPage page = document.getPage(0); // 获取第一个页面
try (PDPageContentStream contentStream = new PDPageContentStream(document, page, PDPageContentStream.AppendMode.APPEND, true, true)) {
contentStream.beginText();
contentStream.setFont(PDType1Font.HELVETICA_BOLD, 12);
contentStream.newLineAtOffset(100, 650);
contentStream.showText("这是添加的文本。");
contentStream.endText();
}
document.save("Modified_HelloWorld.pdf");
} catch (IOException e) {
e.printStackTrace();
}
}
}
总结
Apache PDFBox 是一个强大的工具,可以轻松地创建、读取和修改 PDF 文档。通过以上示例,我们展示了如何使用该库进行基本操作。随着对 PDFBox 的深入学习,你可以探索更多的高级功能,例如图形操作、表单处理、数字签名等。
希望这篇文章能帮助你入门 PDFBox,并开始在你的 Java 应用中使用它。