免费足网站,苏州优化平台,erp系统有哪些功能模块,网站二维码链接怎么做嘿#xff0c;朋友#xff01;在 Java 里实现 PDF 文档生成那可真是个挺有意思的事儿#xff0c;今儿个就来好好唠唠这个。咱有不少好用的库可以选择#xff0c;下面就给你详细讲讲其中两个超实用的库#xff0c;一个是 iText#xff0c;另一个是 Apache PDFBox。 用 iTe…嘿朋友在 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 依赖
dependencygroupIdcom.itextpdf/groupIdartifactIditextpdf/artifactIdversion5.5.13.3/version
/dependency
用 Apache PDFBox 库生成 PDF 思路 先把 Apache PDFBox 库引入进来这也是一个生成 PDF 的厉害工具。 创建一个 PDDocument 对象这个对象就像是一个 PDF 的容器。 创建一个 PDPage 表示页面然后把它添加到 PDDocument 里就像给容器里放了一张纸。 获取 PDPageContentStream 来绘制内容就像拿起笔在纸上画画。 最后关闭 PDPageContentStream 和 PDDocumentPDF 就生成好啦。
代码示例
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 依赖
dependencygroupIdorg.apache.pdfbox/groupIdartifactIdpdfbox/artifactIdversion2.0.24/version
/dependency
嘿朋友这下你知道怎么用 Java 生成 PDF 文档了吧这两个库都挺好用的你可以根据自己的需求选择哦。赶紧动手试试吧