目录- 前言
- 用 iText 库生成 PDF
- 用 Apache PDFBox 库生成 PDF
- 总结
前言
在 Java 里实现 PDF 文档生成那可真是个挺有意思的事儿,今儿个就来好好唠唠这个。咱有不少好用的库可以选择,下面就给你详细讲讲其中两个超实用的库,一个是 iText,另一个是 Apache PDFBox。
用 iText 库生成 PDF
思路
代码示例
- 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 ITextPdfGenerator {
- public static void main(String[] args) {
- // 创建 Document 对象,就像准备好一张白纸
- Document document = new Document();
- try {
- // 把这张“白纸”和一个文件输出流关联起来,指定生成的 PDF 文件路径
- PdfWriter.getInstance(document, new FileOutputStream("itext_example.pdf"));
- // 打开这张“白纸”,准备画画
- document.open();
- // 在“白纸”上添加一个段落内容
- document.add(new Paragraph("嘿,这是用 iText 生成的 PDF 文档哦,是不是很神奇!"));
- } catch (DocumentException | FileNotFoundException e) {
- e.printStackTrace();
- } finally {
- // 合上“白纸”,完成 PDF 生成
- if (document.isOpen()) {
- document.close();
- }
- }
- }
- }
复制代码
代码解释及使用说明
首先咱创建了一个 对象,它就代表了整个 PDF 文档,就像一张白纸。用 方法把 和一个文件输出流关联起来,这里指定生成的 PDF 文件叫 。调用 把“白纸”打开,这样就能往里面添加内容啦。用 - document.add(new Paragraph("..."))
复制代码 往文档里添加一个段落,就像在白纸上写了一句话。最后在 块里调用 把“白纸”合上,确保资源都正确释放。
Maven 依赖
- <dependency>
- <groupId>com.itextpdf</groupId>
- <artifactId>itextpdf</artifactId>
- <version>5.5.13.3</version>
- </dependency>
复制代码
用 Apache 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 PdfBoxPdfGenerator {
- public static void main(String[] args) {
- // 创建 PDDocument 对象,就像准备一个 PDF 容器
- PDDocument document = new PDDocument();
- try {
- // 创建一个页面,就像准备一张纸
- PDPage page = new PDPage();
- // 把这张纸放到 PDF 容器里
- document.addPage(page);
-
- // 获取页面内容流,就像拿起笔准备画画
- PDPageContentStream contentStream = new PDPageContentStream(document, page);
- // 设置字体和字号,就像选择画笔的粗细和样式
- contentStream.setFont(PDType1Font.HELVETICA_BOLD, 12);
- // 开始新的一行,准备写字
- contentStream.beginText();
- // 设置文本位置,就像确定在纸上的写字位置
- contentStream.newLineAtOffset(100, 700);
- // 写入文本,在纸上写下内容
- contentStream.showText("嘿,这是用 Apache PDFBox 生成的 PDF 文档,很酷吧!");
- // 结束文本操作,写完了
- contentStream.endText();
- // 把笔放下,关闭内容流
- contentStream.close();
-
- // 保存这个 PDF 文档
- document.save("pdfbox_example.pdf");
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- // 把 PDF 容器关上,完成操作
- try {
- if (document != null) {
- document.close();
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- }
复制代码
代码解释及使用说明
创建 对象,它代表整个 PDF 文档,就像一个容器。创建 表示一个页面,用 把页面添加到文档里,就像把纸放到容器里。用 来向页面里绘制内容,通过 方法设置字体和字号, 开始文本操作, 设置文本位置, 写入文本, 结束文本操作。调用 关闭内容流,就像把笔放下。最后调用 - document.save("pdfbox_example.pdf")
复制代码 保存文档,在 块里关闭 ,把容器关上。
Maven 依赖
- <dependency>
- <groupId>org.apache.pdfbox</groupId>
- <artifactId>pdfbox</artifactId>
- <version>2.0.24</version>
- </dependency>
复制代码
嘿,朋友,这下你知道怎么用 Java 生成 PDF 文档了吧!这两个库都挺好用的,你可以根据自己的需求选择哦。赶紧动手试试吧!
总结
到此这篇关于Java生成PDF文档的文章就介绍到这了,更多相关Java生成PDF文档内容请搜索晓枫资讯以前的文章或继续浏览下面的相关文章希望大家以后多多支持晓枫资讯! 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |