在 Java 中生成 PDF 可以通过多种方式实现,这里我将介绍两种常用的方法:使用 iText 和 Apache PDFBox 这两个流行的 Java 第三方库。以下是每种方法的详细步骤、依赖和示例代码。
iText 是一个流行的开源库,用于创建和处理 PDF 文档。以下是使用 iText 生成 PDF 的步骤:
Document
对象。PdfWriter
对象来关联 Document
对象与输出文件。Document
。Document
,如文本、表格、图片等。Document
以完成生成。<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13.2</version>
</dependency>
implementation 'com.itextpdf:itextpdf:5.5.13.2'
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
public class ITextPdfGeneration {
public static void main(String[] args) {
Document document = new Document();
try {
PdfWriter.getInstance(document, new FileOutputStream("output.pdf"));
document.open();
document.add(new Paragraph("Hello, this is a sample PDF generated using iText!"));
document.close();
System.out.println("PDF created successfully.");
} catch (DocumentException | FileNotFoundException e) {
e.printStackTrace();
}
}
}
Apache PDFBox 是另一个常用的 Java 库,用于创建和处理 PDF 文档。以下是使用 PDFBox 生成 PDF 的步骤:
PDDocument
对象。PDPage
)对象。PDPageContentStream
对象来添加内容到页面。<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.27</version>
</dependency>
implementation 'org.apache.pdfbox:pdfbox:2.0.27'
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import java.io.IOException;
public class PDFBoxPdfGeneration {
public static void main(String[] args) {
try (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, this is a sample PDF generated using PDFBox!");
contentStream.endText();
}
document.save("output.pdf");
System.out.println("PDF created successfully.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
通过这两种方式,您可以轻松地在 Java 中生成 PDF 文档。选择合适的库取决于您的具体需求和偏好。