Java生成PDF文档两个超实用的库(iText和ApachePDFBox),
Java生成PDF文档两个超实用的库(iText和ApachePDFBox),
目录
- 前言
- 用 iText 库生成 PDF
- 思路
- 代码解释及使用说明
- Maven 依赖
- 用 Apache PDFBox 库生成 PDF
- 思路
- 代码解释及使用说明
- Maven 依赖
- 总结
前言
在 Java 里实现 PDF 文档生成那可真是个挺有意思的事儿,今儿个就来好好唠唠这个。咱有不少好用的库可以选择,下面就给你详细讲讲其中两个超实用的库,一个是 iText,另一个是 Apache PDFBox。
用 iText 库生成 PDF
思路
先把 iText 库给引入进来,这就好比给咱的 Java 项目装上了一个生成 PDF 的“神器”。
创建一个
Document
对象,这个对象就像是一张白纸,咱要在上面绘制 PDF 的内容。把这张“白纸”打开,同时设置好字体啥的,就像准备好画笔和颜料。
往
Document
里添加各种内容,比如段落、表格这些,就像在白纸上画画。最后把“白纸”合上,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(); } } } }
代码解释及使用说明
首先咱创建了一个
Document
对象,它就代表了整个 PDF 文档,就像一张白纸。用
PdfWriter.getInstance
方法把Document
和一个文件输出流关联起来,这里指定生成的 PDF 文件叫itext_example.pdf
。调用
document.open()
把“白纸”打开,这样就能往里面添加内容啦。用
document.add(new Paragraph("..."))
往文档里添加一个段落,就像在白纸上写了一句话。最后在
finally
块里调用document.close()
把“白纸”合上,确保资源都正确释放。
Maven 依赖
<dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.13.3</version> </dependency>
用 Apache PDFBox 库生成 PDF
思路
先把 Apache PDFBox 库引入进来,这也是一个生成 PDF 的厉害工具。
创建一个
PDDocument
对象,这个对象就像是一个 PDF 的容器。创建一个
PDPage
表示页面,然后把它添加到PDDocument
里,就像给容器里放了一张纸。获取
PDPageContentStream
来绘制内容,就像拿起笔在纸上画画。最后关闭
PDPageContentStream
和PDDocument
,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(); } } } }
代码解释及使用说明
创建
PDDocument
对象,它代表整个 PDF 文档,就像一个容器。创建
PDPage
表示一个页面,用document.addPage(page)
把页面添加到文档里,就像把纸放到容器里。用
PDPageContentStream
来向页面里绘制内容,通过setFont
方法设置字体和字号,beginText
开始文本操作,newLineAtOffset
设置文本位置,showText
写入文本,endText
结束文本操作。调用
contentStream.close()
关闭内容流,就像把笔放下。最后调用
document.save("pdfbox_example.pdf")
保存文档,在finally
块里关闭PDDocument
,把容器关上。
Maven 依赖
<dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId> <version>2.0.24</version> </dependency>
嘿,朋友,这下你知道怎么用 Java 生成 PDF 文档了吧!这两个库都挺好用的,你可以根据自己的需求选择哦。赶紧动手试试吧!
总结
到此这篇关于Java生成PDF文档的文章就介绍到这了,更多相关Java生成PDF文档内容请搜索3672js教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持3672js教程!
您可能感兴趣的文章:- 详解Java生成PDF文档方法
- Java 生成PDF文档的示例代码
- 如何使用Java生成PDF文档详解
- 手把手教你使用Java实现在线生成pdf文档
- Java快速生成PDF文档的实例代码
用户点评