package demo; import java.io.FileOutputStream; import java.io.IOException; import java.util.HashMap; import java.util.Map; import com.itextpdf.text.DocumentException; import com.itextpdf.text.pdf.AcroFields; import com.itextpdf.text.pdf.BaseFont; import com.itextpdf.text.pdf.PdfReader; import com.itextpdf.text.pdf.PdfStamper; public class updatePdf { public static void main(String[] args) { Map<String, Object> data = new HashMap<String, Object>();// 要插入的数据
//amuout是设置准备表单的名
data.put("amount", "测试"); // 初始化itext // 设置编码 BaseFont baseFont; try { // baseFont = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); String path = "C:/Windows/Fonts/simfang.ttf";//windows里的字体资源路径 baseFont=BaseFont.createFont(path, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); // 获取pdf模板 PdfReader pdfReader = new PdfReader("E:\\demoooo.pdf"); // new FileOutputStream("E:\\demo1.pdf")新的pdf PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileOutputStream("E:\\demo1.pdf")); AcroFields form = pdfStamper.getAcroFields(); form.addSubstitutionFont(baseFont); // 写入数据 for (String key : data.keySet()) { String value = data.get(key).toString(); // key对应模板数据域的名称 form.setField(key, value, true); } // 设置不可编辑 pdfStamper.setFormFlattening(true); pdfStamper.close(); } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
(6条消息) itextpdf在PDF指定位置添加文本_无法无天过路客的博客-CSDN博客_给固定格式的pdf文件动态添加文本
想修改字体方案:再用adobepdf设置准备表单时,可以修改字体大小...
所用依赖:
<dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.11</version> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-asian</artifactId> <version>5.2.0</version> </dependency>