package com.micmiu.pdf.itext;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.util.List;
import com.itextpdf.text.Document;
import com.itextpdf.text.Element;
import com.itextpdf.text.Font;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.html.simpleparser.HTMLWorker;
import com.itextpdf.text.html.simpleparser.StyleSheet;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfWriter;
public class HTML2PDFByHTMLWorker {
/**
* @param args
*/
public static void main(String[] args) {
HTML2PDFByHTMLWorker ih = new HTML2PDFByHTMLWorker();
String htmlFile = "D:/test/itext/test.html";
//ih.htmlCodeComeFromFile(htmlFile, htmlFile + ".pdf");
ih.htmlCodeComeString("Hello中文", "D:/test/itext/cn.pdf");
}
public void htmlCodeComeFromFile(String filePath, String pdfPath) {
Document document = new Document();
try {
StyleSheet st = new StyleSheet();
st.loadTagStyle("body", "leading", "16,0");
PdfWriter.getInstance(document, new FileOutputStream(pdfPath));
document.open();
BaseFont bfChinese = BaseFont.createFont("STSong-Light",
"UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
Font FontChinese = new Font(bfChinese, 12, Font.NORMAL);
Paragraph t = new Paragraph(filePath, FontChinese);
document.add(t);
List p = HTMLWorker.parseToList(new FileReader(filePath), st);
for (int k = 0; k < p.size(); ++k) {
document.add((Element) p.get(k));
}
document.close();
System.out.println("文档创建成功");
} catch (Exception e) {
e.printStackTrace();
}
}
public void htmlCodeComeString(String htmlCode, String pdfPath) {
Document doc = new Document(PageSize.A4);
try {
PdfWriter.getInstance(doc, new FileOutputStream(pdfPath));
doc.open();
// 解决中文问题
BaseFont bfChinese = BaseFont.createFont("STSong-Light",
"UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
Font FontChinese = new Font(bfChinese, 12, Font.NORMAL);
Paragraph t = new Paragraph(htmlCode, FontChinese);
doc.add(t);
doc.close();
System.out.println("文档创建成功");
} catch (Exception e) {
e.printStackTrace();
}
}
}