您的位置:首页 > 编程语言 > Java开发

使用Java 将html转换PDF

2015-11-10 14:23 501 查看
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"; //本地目录必须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();

}

}

所需Jar包:


core-renderer.jar http://download.csdn.net/detail/hackxiaof/9257649

iText-2.0.8.jar http://download.csdn.net/detail/hackxiaof/9257661

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