您的位置:首页 > 新闻 > 热点要闻 > 最新军事新闻报道_制作网页方案_品牌传播推广方案_免费企业建站

最新军事新闻报道_制作网页方案_品牌传播推广方案_免费企业建站

2025/4/17 6:18:08 来源:https://blog.csdn.net/luyangbin01/article/details/146363512  浏览:    关键词:最新军事新闻报道_制作网页方案_品牌传播推广方案_免费企业建站
最新军事新闻报道_制作网页方案_品牌传播推广方案_免费企业建站

制作 PDF 模版

  • 安装 OnlyOffice
    从 OnlyOffice 官网下载 OnlyOffice Desktop,安装过程很简单,一路下一步即可。
  • 用 OnlyOffice 制作 PDF 模版(表单)
    使用 OnlyOffice 表单设计器,制作表单,如下图
    在这里插入图片描述
    注意命名各个输入框的 formKey,后面 Java 代码需要依据这个 formKey 去填写表单
    在这里插入图片描述

使用 Java 填写 PDF 模版

  • 添加 maven 依赖,主要使用到的是 itextpdf
		<dependency><groupId>com.itextpdf</groupId><artifactId>itext7-core</artifactId><version>9.1.0</version><type>pom</type></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>forms</artifactId><version>9.1.0</version></dependency>
  • Java 填写 PDF 表单实现的 demo
    public static void fillTemplate(String templatePath, String outputPath, Map<String, String> data) {try {PdfDocument pdfDoc = new PdfDocument(new PdfReader(templatePath), new PdfWriter(outputPath));// 获取 PDF 表单PdfAcroForm form = PdfAcroForm.getAcroForm(pdfDoc, true);PdfFont font = PdfFontFactory.createFont("STSongStd-Light", "UniGB-UCS2-H");form.getField("userName").setValue("李元霸",font,14);form.getField("addr").setValue("XX路XX號",font,14);form.getField("tel").setValue("18*******",font,14);form.getField("longText").setValue("不同操作系统支持的字体名称可能不同,",font,14);form.flattenFields(); // 把form 域去掉,这样生成新的 pdf 就不可以编辑了// 保存并关闭 PDF 文档pdfDoc.close();System.out.println("PDF 表单填写完成,输出文件: " + outputPath);} catch (IOException e) {e.printStackTrace();}}

几个注意点:
(1)中文问题。如果没有设置字体,会导致中文不显示。需要确保字体文件在程序运行的机器上是存在的。

PdfFont font = PdfFontFactory.createFont("STSongStd-Light", "UniGB-UCS2-H");

(2)如果你希望生成新的 pdf 不要有输入框,那么需要调用

form.flattenFields();

(3)itextpdf 依赖包尽量用最新版本

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com