关于根据模版生成PDF,不用表单的方式插入的方法
Posted Ahnappi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于根据模版生成PDF,不用表单的方式插入的方法相关的知识,希望对你有一定的参考价值。
用到的主要是itext依赖
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.10</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>kernel</artifactId>
<version>7.1.8</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>layout</artifactId>
<version>7.1.2</version>
</dependency>
代码
try {
PdfReader reader = null;
readr = new PdfReader("模版路径");
PdfWriter writer = new PdfWriter("模板输出路径");
PdfDocument pdfDoc = new PdfDocument(reader, writer);
Document document = new Document(pdfDoc);
//插入中文必须用到字体格式
PdfFont f2 = PdfFontFactory.createFont(字体);
document.add(new Paragraph(插入的数据).setFontSize(“字体大小”).setFont(字体格式).setFixedPosition(位置));
document.close();
writer.close();
reader.close();
}catch (Exception e ){
e.printStackTrace();
}
后面用到了将PDF转化为Png的代码
如下
public static void pdf2png(String fileAddress, String filename, String type) {
// 将pdf装图片 并且自定义图片得格式大小
File file = new File(fileAddress + "/" + filename + ".pdf");
try {
PDDocument doc = PDDocument.load(file);
PDFRenderer renderer = new PDFRenderer(doc);
int pageCount = doc.getNumberOfPages();
for (int i = 0; i < pageCount; i++) {
BufferedImage image = renderer.renderImageWithDPI(i, 144); // Windows native DPI
// BufferedImage srcImage = resize(image, 240, 240);//产生缩略图 ImageIO.write(image, type, new File(fileAddress + "/"+ filename + "." + type));
}
} catch (IOException e) {
e.printStackTrace();
}
}
基本上就可以完成非表单的PDF数据插入
以上是关于关于根据模版生成PDF,不用表单的方式插入的方法的主要内容,如果未能解决你的问题,请参考以下文章
POI根据模板导出word文件,以及word转PDF,PDF转图片再插入PDF中(防止PDF被修改)
POI根据模板导出word文件,以及word转PDF,PDF转图片再插入PDF中(防止PDF被修改)
java代码编辑器 pdf文件预览 主流SSM 代码生成器 shrio redis websocke