如何将html页面导出为pdf格式? [英] How to export html page to pdf format?

查看:122
本文介绍了如何将html页面导出为pdf格式?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我必须为我的网站提供一些导出功能,例如CSV或PDF。有没有一个强大的和免费的工具,用于Java将HTML页面转换为PDF格式?

使用 Flying Saucer API iText PDF 您可以将HTML内容转换为PDF。在某种程度上理解XHTML到PDF的转换。



使用Flying Saucer API的示例

您需要以下库:


  • core-renderer.jar
  • iText-2.0.8.jar


您可以在 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆