您的位置:首页 > 其它

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

2017-06-12 16:46 627 查看


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

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();//关闭文档流

4000

图上的实现

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

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: