用到的主要是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数据插入
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。