JAVA中HTML轉PDF

springlin2011發表於2012-04-04
[color=blue]HtmltoPDF[/color]

package cn.spring.test.htmltopdf;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;

import org.xhtmlrenderer.pdf.ITextFontResolver;
import org.xhtmlrenderer.pdf.ITextRenderer;

import com.lowagie.text.pdf.BaseFont;

public class HtmltoPDF {

public static void main( String[] args ) throws Exception{


// htmlToPdf();
// htmlToPdf2();
htmlToPdf3();
}

// 不支援中文
public static void htmlToPdf() throws Exception
{
String inputFile = "D:/Test/flying.html";
String url = new File( inputFile ).toURI().toURL().toString();
String outputFile = "D:/Test/flying.pdf";
OutputStream os = new FileOutputStream( outputFile );
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument( url );
renderer.layout();
renderer.createPDF( os );
os.close();
}

// 支援中文
public static void htmlToPdf2() throws Exception {
String outputFile = "F:/TestDemo/demo_3.pdf";
OutputStream os = new FileOutputStream(outputFile);
ITextRenderer renderer = new ITextRenderer();
ITextFontResolver fontResolver = renderer.getFontResolver();
fontResolver.addFont("C:/Windows/fonts/simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
StringBuffer html = new StringBuffer();
// DOCTYPE 必需寫否則類似於 這樣的字元解析會出現錯誤
html.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");
html.append("<html xmlns=\"http://www.w3.org/1999/xhtml\">").
append("<head>")
.append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />")
.append("<style type=\"text/css\" mce_bogus=\"1\">body {font-family: SimSun;}</style>")
.append("</head>")
.append("<body>");
html.append("<div>支援中文!</div>");
html.append("</body></html>");
renderer.setDocumentFromString(html.toString());
// 解決圖片的相對路徑問題
// renderer.getSharedContext().setBaseURL("file:/F:/teste/html/");
renderer.layout();
renderer.createPDF(os);
System.out.println("======轉換成功!");
os.close();
}

public static void htmlToPdf3() throws Exception{
String inputFile = "F:/TestDemo/test.html";
String outFile = "F:/TestDemo/test.pdf";
OutputStream os = null;
os = new FileOutputStream(outFile);
ITextRenderer renderer = new ITextRenderer();
ITextFontResolver fontResolver = renderer.getFontResolver();
fontResolver.addFont("C:/Windows/fonts/simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

String url = new File( inputFile ).toURI().toURL().toString();
System.out.println("=============url: "+url);
renderer.setDocument(url);
renderer.layout();
renderer.createPDF(os);
System.out.println("======轉換成功!");
os.close();
}

}


相關文章