iText7初步使用:生成简单的pdf文件

来源:互联网 发布:道路采集赚钱软件 编辑:程序博客网 时间:2024/05/17 03:15

PDF


  • 下面这段是最简单的实现,不是图上的效果。
       String DEST2 = "G:\\test4.pdf";//文件路径       PdfFont sysFont = PdfFontFactory.createFont("STSongStd-Light", "UniGB-UCS2-H", false);//中文设置        PdfDocument pdfDoc = new PdfDocument(new PdfWriter(DEST2));          Document doc = new Document(pdfDoc);//构建文档对象               Paragraph paragraph = new Paragraph("hello word 你好 世界"); //段落方法        paragraph.setFont(sysFont);//自定义中文       doc.add(paragraph);//段落添加到文档中       doc.close();//关闭文档流

  • 图上的实现

1.工具类

package com.gsafety.plan.module.util;import java.io.IOException;import com.itextpdf.kernel.font.PdfFont;import com.itextpdf.kernel.font.PdfFontFactory;import com.itextpdf.kernel.pdf.PdfDocument;import com.itextpdf.kernel.pdf.PdfWriter;import com.itextpdf.layout.Document;import com.itextpdf.layout.element.Paragraph;import com.itextpdf.layout.property.TextAlignment;/** *  *  *  *  * @author Hui * */public class PDFUtil {    public static String DEST2 = "";//文件路径      public static PdfFont sysFont =null;    public PDFUtil(String url){        try {            sysFont = PdfFontFactory.createFont("STSongStd-Light", "UniGB-UCS2-H", false);//中文设置             DEST2=url;//文件路径+名字        } catch (IOException e) {            e.printStackTrace();        }    }   /**    * 创建pdf doc    * @return doc    * */   public Document createPdfDoc() throws Exception{          PdfDocument pdfDoc = new PdfDocument(new PdfWriter(DEST2));           Document doc = new Document(pdfDoc);//构建文档对象         return doc;   }   /**    * 添加大标题    * @param    *     * */   public void addTitle(Document doc,String title) throws Exception{        Paragraph paragraph = new Paragraph();         paragraph.add(title).setFont(sysFont).setBold().setFontSize(20).setTextAlignment(TextAlignment.CENTER);       doc.add(paragraph);   }   /**    * 添加一级标题    * @param    *     * */   public void addHeading1(Document doc,String pg) throws Exception{       Paragraph paragraph = new Paragraph();        paragraph.add(pg).setFont(sysFont).setBold().setFontSize(16);       doc.add(paragraph);   }   /**    * 添加二级标题    * @param    *     * */   public  void addHeading2(Document doc,String pg) throws Exception{       Paragraph paragraph = new Paragraph();         paragraph.add(pg).setFont(sysFont).setBold().setFontSize(14).setFirstLineIndent(14);       doc.add(paragraph);   }   /**    * 添加三级标题    * @param    *     * */   public  void addHeading3(Document doc,String pg) throws Exception{       Paragraph paragraph = new Paragraph();         paragraph.add(pg).setFont(sysFont).setBold().setFontSize(12);       doc.add(paragraph);   }   /**    * 添加段落    * @param    * */   public void addParagraph(Document doc,String pg) throws Exception{       Paragraph paragraph = new Paragraph();         paragraph.add(pg).setFont(sysFont).setFirstLineIndent(20);//中文字体,首行缩进       doc.add(paragraph);   }}

2.测试

import com.itextpdf.layout.Document;public class Testp {   public static String url="G:\\test4.pdf";   public static void main(String[] args) throws Exception {         long old = System.currentTimeMillis();       PDFUtil pdfUtil=new PDFUtil(url);//传入路径+文件名,使用工具类       Document doc= pdfUtil.createPdfDoc();           pdfUtil.addTitle(doc, "我是标题");//添加标题       pdfUtil.addHeading1(doc,"标题1");       pdfUtil.addParagraph(doc,"内容11111111");       pdfUtil.addHeading1(doc,"标题2");       pdfUtil.addHeading2(doc,"标题2.1");       pdfUtil.addParagraph(doc,"内容2.1");        pdfUtil.addHeading2(doc,"标题2.2");       pdfUtil.addParagraph(doc,"内容2.2");        doc.close();       long now = System.currentTimeMillis();       System.out.println("共耗时:" + ((now - old) / 1000.0) + "秒\n\n" + "文件保存在:" + url);   }  }