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

iText7初步使用:生成简单的pdf文件_第1张图片


  • 下面这段是最简单的实现,不是图上的效果。

       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);
   }  



}

你可能感兴趣的:(个人,笔记,iText)