- 下面这段是最简单的实现,不是图上的效果。
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);
}
}
6848



被折叠的 条评论
为什么被折叠?



