iText 生成pdf
需求:需要根据订单生成PDF
解决:使用IText生成pdf
import cn.com.artlife.archiveCenterService.util.CommonUtil;
import com.itextpdf.text.*;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfWriter;
import java.io.File;
import java.io.FileOutputStream;
public class Test {
public static void main(String[] args) {
createPDF();
}
public static void createPDF() {
try {
String path = "D://wy";//生成pdf的路径
java.io.File file = new java.io.File(path);
if (!file.exists()) {
file.mkdirs();
}
Document document = new Document(PageSize.A4, 80, 80, 70, 50);//pdf 的大小,以及上下左右的边距
String fileName = "originalStatement.pdf";//pdf 的名字
path = path + File.separator + fileName;
PdfWriter.getInstance(document, new FileOutputStream(path));
document.open();
BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);//处理中文问题
Font titleFont = new Font(bfChinese, 18, Font.BOLD, BaseColor.BLACK);//设置字体大小为18,加粗,黑色
Paragraph title = new Paragraph(20, "艺术品原创声明", titleFont);
title.setAlignment(Element.ALIGN_CENTER);//设置居中
document.add(title);
Font contentFont = new Font(bfChinese, 14, Font.NORMAL, BaseColor.BLACK);
Chunk tChunk1 = new Chunk("我是", contentFont);
Chunk tChunk2 = new Chunk("某某某", contentFont);
tChunk2.setUnderline(0.2f, -2f); // 下划线
Chunk tChunk3 = new Chunk(",身 份 证", contentFont);
Chunk tChunk4 = new Chunk("8888888888888888", contentFont);
tChunk4.setUnderline(0.2f, -2f); // 下划线
Chunk tChunk5 = new Chunk("。此次我带来由本人创作的作品。下面我将对此作品的原创性进行证明。", contentFont);
StringBuffer paragraph1buffer = new StringBuffer();
Paragraph paragraph1 = new Paragraph(29,"", contentFont);
paragraph1.add(tChunk1);
paragraph1.add(tChunk2);
paragraph1.add(tChunk3);
paragraph1.add(tChunk4);
paragraph1.add(tChunk5);
paragraph1.setSpacingBefore(36);//上边距
paragraph1.setFirstLineIndent(24);//首行缩进
paragraph1.setAlignment(Element.ALIGN_JUSTIFIED);
document.add(paragraph1);
StringBuffer buffer = new StringBuffer();
buffer.append("此件 山水画 作品,名为《千山万水》,于1988年8月月由本人创作。");
Paragraph cotent = new Paragraph(29, buffer.toString(), contentFont);
cotent.setAlignment(Element.ALIGN_JUSTIFIED);
cotent.setFirstLineIndent(24);
document.add(cotent);
Paragraph paragraph2 = new Paragraph(29, "我承诺:以上作品由本人创作,本人是此作品的原创作者。以上是我本人基于客观事实自愿做出的声明,如若发生原创相关的问题争议,包括但不限于冒用、复制他人创作的作品,本人愿承担一切由此产生的经济及法律责任。", contentFont);
paragraph2.setAlignment(Element.ALIGN_JUSTIFIED);
paragraph2.setFirstLineIndent(24);
document.add(paragraph2);
StringBuffer paragraph3buffer = new StringBuffer();
paragraph3buffer.append("声明人:");
Paragraph paragraph3 = new Paragraph(29, paragraph3buffer.toString(), contentFont);
paragraph3.setAlignment(Element.ALIGN_JUSTIFIED);
paragraph3.setSpacingBefore(30);
paragraph3.setFirstLineIndent(24);
document.add(paragraph3);
StringBuffer paragraph4buffer = new StringBuffer();
paragraph4buffer.append("日 期:").append(CommonUtil.getCurrentTime("yyyy")).append(" 年")
.append(CommonUtil.getCurrentTime("MM")).append(" 月").append(CommonUtil.getCurrentTime("dd")).append(" 日");
Paragraph paragraph4 = new Paragraph(29, paragraph4buffer.toString(), contentFont);
paragraph4.setAlignment(Element.ALIGN_JUSTIFIED);
paragraph4.setFirstLineIndent(24);
document.add(paragraph4);
document.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
得到的pdf如下: