关于根据模版生成PDF,不用表单的方式插入的方法

用到的主要是itext依赖


 com.itextpdf
 itext-asian
 5.2.0



 com.itextpdf
 itextpdf
 5.5.10



 com.itextpdf
 kernel
 7.1.8



 com.itextpdf
 layout
 7.1.2

代码


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数据插入

你可能感兴趣的:(java)