如何将html页面导出为pdf格式? [英] How to export html page to pdf format?
问题描述
我必须为我的网站提供一些导出功能,例如CSV或PDF。有没有一个强大的和免费的工具,用于Java将HTML页面转换为PDF格式?
使用 Flying Saucer API
与 iText PDF
您可以将HTML内容转换为PDF。在某种程度上理解XHTML到PDF的转换。 使用Flying Saucer API的示例:
您需要以下库:
您可以在 flyingsaucer-R8.zip
。
$ b 示例1:使用XML资源:
//如果手头有html源代码,用它来生成文档对象
Document document = XMLResource.load(new ByteArrayInputStream(yourXhtmlContentAsString.getBytes())).getDocument();
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(document,null);
renderer.layout();
String fileNameWithPath = outputFileFolder +PDF-XhtmlRendered.pdf;
FileOutputStream fos = new FileOutputStream(fileNameWithPath);
renderer.createPDF(fos);
fos.close();
System.out.println(File 1:'+ fileNameWithPath +'created。);
示例2:使用XHTML直接输入到文档:
ITextRenderer renderer = new ITextRenderer();
//如果手头有html源代码,用它来生成文档对象
renderer.setDocumentFromString(yourXhtmlContentAsString);
renderer.layout();
String fileNameWithPath = outputFileFolder +PDF-FromHtmlString.pdf;
FileOutputStream fos = new FileOutputStream(fileNameWithPath);
renderer.createPDF(fos);
fos.close();
System.out.println(文件2:'+ fileNameWithPath +'created。);
使用iText API的示例:
您需要以下库:
- core-renderer.jar
- itextpdf-5.2.1.jar li>
您可以在 <强>此处强> 。
$ b 示例3:使用HTML Worker :
com.itextpdf.text.Document document =
new com.itextpdf.text.Document(com.itextpdf.text.PageSize.A4);
String fileNameWithPath = outputFileFolder +PDF-HtmlWorkerParsed.pdf;
FileOutputStream fos = new FileOutputStream(fileNameWithPath);
com.itextpdf.text.pdf.PdfWriter pdfWriter =
com.itextpdf.text.pdf.PdfWriter.getInstance(document,fos);
document.open();
// **************************************** ******************
//如果需要,您可以添加文档元数据
document.addAuthor(Ravinder);
//document.addCreator(创建者);
document.addSubject(来自iText的HtmlWoker Parsed Pdf);
document.addCreationDate();
document.addTitle(来自iText的HtmlWoker Parsed Pdf);
// ******************************************** ************** /
com.itextpdf.text.html.simpleparser.HTMLWorker htmlWorker =
new com.itextpdf.text.html.simpleparser .HTMLWorker(文档);
htmlWorker.parse(new StringReader(sb.toString()));
document.close();
fos.close();
System.out.println(文件3:'+ fileNameWithPath +'created。);
I have to offer some export functions to my website such as CSV or PDF. Is there a powerful and free tool for Java to convert HTML pages to PDF format?
Using Flying Saucer API
with iText PDF
you can convert HTML content to PDF.
Following examples help you in understanding, to some extent, conversion of XHTML to PDF.
Examples Using Flying Saucer API:
You require following libraries:
- core-renderer.jar
- iText-2.0.8.jar
You can find these resources in flyingsaucer-R8.zip
.
Example1: Using XML Resource:
// if you have html source in hand, use it to generate document object
Document document = XMLResource.load( new ByteArrayInputStream( yourXhtmlContentAsString.getBytes() ) ).getDocument();
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument( document, null );
renderer.layout();
String fileNameWithPath = outputFileFolder + "PDF-XhtmlRendered.pdf";
FileOutputStream fos = new FileOutputStream( fileNameWithPath );
renderer.createPDF( fos );
fos.close();
System.out.println( "File 1: '" + fileNameWithPath + "' created." );
Example2: Using XHTML direct input to Document:
ITextRenderer renderer = new ITextRenderer();
// if you have html source in hand, use it to generate document object
renderer.setDocumentFromString( yourXhtmlContentAsString );
renderer.layout();
String fileNameWithPath = outputFileFolder + "PDF-FromHtmlString.pdf";
FileOutputStream fos = new FileOutputStream( fileNameWithPath );
renderer.createPDF( fos );
fos.close();
System.out.println( "File 2: '" + fileNameWithPath + "' created." );
Examples Using iText API:
You require following libraries:
- core-renderer.jar
- itextpdf-5.2.1.jar
You can find these resources at here.
Example3: Using HTML Worker:
com.itextpdf.text.Document document =
new com.itextpdf.text.Document( com.itextpdf.text.PageSize.A4 );
String fileNameWithPath = outputFileFolder + "PDF-HtmlWorkerParsed.pdf";
FileOutputStream fos = new FileOutputStream( fileNameWithPath );
com.itextpdf.text.pdf.PdfWriter pdfWriter =
com.itextpdf.text.pdf.PdfWriter.getInstance( document, fos );
document.open();
//**********************************************************
// if required, you can add document meta data
document.addAuthor( "Ravinder" );
//document.addCreator( creator );
document.addSubject( "HtmlWoker Parsed Pdf from iText" );
document.addCreationDate();
document.addTitle( "HtmlWoker Parsed Pdf from iText" );
//**********************************************************/
com.itextpdf.text.html.simpleparser.HTMLWorker htmlWorker =
new com.itextpdf.text.html.simpleparser.HTMLWorker( document );
htmlWorker.parse( new StringReader( sb.toString() ) );
document.close();
fos.close();
System.out.println( "File 3: '" + fileNameWithPath + "' created." );
这篇关于如何将html页面导出为pdf格式?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!