iText XML Worker实现HTML转PDF

目录:

  1. 概述
  2. 两种应用场景的实现

[一]、概述

本文演示如何把HTML的内容转为PDF文档,分两种情况:

  • 第一种:直接把HTML转成单个PDF文件;
  • 第二种:把HTML内容转成PDF的元素(ELement),对应已有的PDF文档,可以把转换后的Element追加到document中,生成PDF文件

[二]、两种应用场景的实现

以我的某一博客:http://www.micmiu.com/os/linux/shell-dev-null/ 的内容生成一个演示的html文件。

demo.html  内容如下:

demo.html 在浏览器中的效果如下:

实现转PDF的Java代码:Demo4HTMLFile2PDF.java

两种方式转换后生成的PDF效果图如下:

本文介绍到此结束@Michael Sun.

原创文章,转载请注明: 转载自micmiu – 软件开发+生活点滴[ http://www.micmiu.com/ ]

本文链接地址: http://www.micmiu.com/opensource/expdoc/itext-html-pdf/

发表评论?

33 条评论。

  1. 博主你的代码151行,显示是这样的,尖括号没有显示出来。

    final List<Element> pdfeleList
    而不是这样的
    final List pdfeleList

  2. 请问能否把jar包列表及其对应的版本号列出来

  3. 你好 请问一下 WritableDirectElement 这个包在哪下呀 我的是itext 5.1.2 还有 tool是在那个包里呀

  4. 你好怎么把html中的图片也转换到 pdf 中呢?

  5. 你好 怎么把HTML 中包含的图片也转换过去呢?

    • img 标签是支持的 它会读取图片转换的

      • 你好, 我有如下一段HTML 代码:
          test font Verdana

           中文字体

        通过:
        InputStreamReader isr = new InputStreamReader(htmlFileStream, “UTF-8”); XMLWorkerHelper.getInstance().parseXHtml(elemH, isr); List list = new ArrayList();
        for (Element ele : pdfeleList) 解析后, 发现 list 中不包含图片 element, pdf中无法展现, 所用版本为: 5.4.2, 请帮忙看一下

  6. 请问一下 我如果正文中我不想要Chapter的编号怎么办? 甚至我连Chapter 的标题都不想要我该怎么办?大大 请指教啊!

  7. 你好,近段时间在学习xmlworker,想请教下你,我那里的xmlworker的div border 不能解析出来,也就是生成的div边框显示不出来,不知道你行不行呢?谢谢

  8. 你好,我用到的itext5.4.1 、xmlworker-5.4.1 从html读取中文是空的 英文是可以的,不从html读取是可以的,你上面的例子也是这样的 ,有啥解决办法吗?

    • 5.4.1我没有试过,不过之前有人好像是可以的,xmlworker只支持部分标签,所以你应该把需要的内容解析的出来再转pdf,我的例子应该没有问题

  9. 弄好了,版本的不兼容问题,itextpdf-5.4.1.jar不能和xmlworker-1.2.1-micmiu.jar一起工作,我换成xmlworker-5.4.0.jar就可以了,但不能解析中文字符,按照您http://www.micmiu.com/opensource/expdoc/itext-xml-worker-cn/所说的修改源码,就可以了,很感谢。

  10. 从你的文章收益很大,解决了中文支持问题。但发现一个问题在html文件中添加table标签怎么程序报错了, 请问这是什么问题?
    异常是:Exception in thread “main” java.lang.NoSuchMethodError: com.itextpdf.text.pdf.PdfPTable.addCell(Lcom/itextpdf/text/pdf/PdfPCell;)V
    难道是版本有问题吗? 不支持那个方法了? 我用的jar包是 itextpdf-5.4.1.jar 还有您提供的对中文支持的jar包

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">