Java-OpenPDF、iText、PDFBox 三种常用 PDF处理库

Java-OpenPDF, iText和PDFBox都是常用的Java PDF处理库,可以用来创建,编辑和处理PDF文档。

  1. Java-OpenPDF:Java-OpenPDF是一个简单易用的开源PDF库,使用Apache License 2.0许可证。它提供了一组易于使用的API,可以用于创建和操作PDF文件。Java-OpenPDF适用于简单的PDF文档,因为它的功能相对较少。

  2. iText: iText是一个功能强大的开源PDF库,可以生成和编辑PDF文件。它提供了丰富的API,可以用于创建和操作PDF文档,例如添加图像,水印,表格,书签和超链接等。iText也可以用于数字签名和加密PDF文件。iText使用AGPLv3许可证,也提供了一个商业许可证。

  3. PDFBox: PDFBox是一个Java库,可用于创建,修改和提取PDF文件的内容。它是一个Apache软件基金会的项目,使用Apache License 2.0许可证。PDFBox提供了一组API,可用于提取文本和图像,添加和删除页面,提取PDF元数据和加密PDF文件等。

综上所述,Java-OpenPDF适用于简单的PDF文档,而iText和PDFBox则适用于更复杂的PDF文件处理。在选择其中一个库时,需要考虑其功能和许可证类型。

  1. Java-OpenPDF

Java-OpenPDF是一种轻量级的Java PDF库,支持创建、修改和读取PDF文件,并提供了丰富的文本和图形操作功能。

创建PDF文件示例代码:

import java.io.File;
import java.io.FileOutputStream;
import com.lowagie.text.Document;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfWriter;
public class CreatePdfExample {
    public static void main(String[] args) {
        try {
            Document document = new Document();
            PdfWriter.getInstance(document, new FileOutputStream(new File("example.pdf")));
            document.open();
            document.add(new Paragraph("Hello World!"));
            document.close();
            System.out.println("PDF file created successfully.");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
  1. iText

iText是一种流行的开源Java PDF库,提供了丰富的PDF操作功能,包括文本、表格、图像、水印、数字签名等。

创建PDF文件示例代码:

import java.io.File;
import java.io.FileOutputStream;
import com.itextpdf.text.Document;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;
public class CreatePdfExample {
    public static void main(String[] args) {
        try {
            Document document = new Document();
            PdfWriter.getInstance(document, new FileOutputStream(new File("example.pdf")));
            document.open();
            document.add(new Paragraph("Hello World!"));
            document.close();
            System.out.println("PDF file created successfully.");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
  1. PDFBox

PDFBox是一种Java PDF库,提供了广泛的PDF操作功能,包括文本、表格、图像、水印、数字签名等。

创建PDF文件示例代码:

import java.io.File;
import java.io.FileOutputStream;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
public class CreatePdfExample {
    public static void main(String[] args) {
        try {
            PDDocument document = new PDDocument();
            PDPage page = new PDPage();
            document.addPage(page);
            PDImageXObject pdImage = PDImageXObject.createFromFile("image.jpg", document);
            PDPageContentStream contentStream = new PDPageContentStream(document, page);
            contentStream.drawImage(pdImage, 100, 100, 300, 300);
            contentStream.beginText();
            contentStream.setFont(PDType1Font.TIMES_ROMAN, 12);
            contentStream.newLineAtOffset(100, 600);
            contentStream.showText("Hello World!");
            contentStream.endText();
            contentStream.close();
            document.save("example.pdf");
            document.close();
            System.out.println("PDF file created successfully.");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}