使用 itext 的 XML 工作器

2023-12-14

import java.io.FileOutputStream;
import java.io.StringReader;

import com.itextpdf.text.Document;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.tool.xml.XMLWorkerHelper;
public class HtmlToPDF2 {

      // itextpdf-5.4.1.jar  http://sourceforge.net/projects/itext/files/iText/
      // xmlworker-5.4.1.jar http://sourceforge.net/projects/xmlworker/files/
      public static void main(String[] args ) {
            try {
              Document document = new Document(PageSize.LETTER);
              PdfWriter pdfWriter = PdfWriter.getInstance
                   (document, new FileOutputStream("C:/Users/Jason/Desktop/testpdf.pdf"));
              document.open();
              document.addAuthor("Real Gagnon");
              document.addCreator("Real's HowTo");
              document.addSubject("Thanks for your support");
              document.addCreationDate();
              document.addTitle("Please read this");

              XMLWorkerHelper worker = XMLWorkerHelper.getInstance();

              String str = "<html><head></head><body>"+
                "<a href='http://www.rgagnon.com/howto.html'><b>Real's HowTo</b></a>" +
                "<h1>Show your support</h1>" +
                "<p>It DOES cost a lot to produce this site - in ISP storage and transfer fees, " +
                "in personal hardware and software costs to set up test environments, and above all," +
                "the huge amounts of time it takes for one person to design and write the actual content.</p>" +
                "<p>If you feel that effort has been useful to you, perhaps you will consider giving something back?</p>" +
                "<p>Donate using PayPal® to [email protected].</p>" +
                "<p>Contributions via PayPal are accepted in any amount</p>" +
                "<P><br/><table border='1'><tr><td>Java HowTo</td></tr><tr>" +
                "<td style='background-color:red;'>Javascript HowTo</td></tr>" +
                "<tr><td>Powerbuilder HowTo</td></tr></table></p>" +
                "</body></html>";
              worker.parseXHtml(pdfWriter, document, new StringReader(str));
              document.close();
              System.out.println("Done.");
              }
            catch (Exception e) {
              e.printStackTrace();
            }
          }

}

这是我在网上找到的示例代码。当我尝试执行它时,出现以下错误:

Exception in thread "main" java.lang.NoSuchMethodError: com.itextpdf.text.Paragraph.trim()Z
at com.itextpdf.tool.xml.html.AbstractTagProcessor.currentContentToParagraph(AbstractTagProcessor.java:257)
at com.itextpdf.tool.xml.html.Header.end(Header.java:93)
at com.itextpdf.tool.xml.html.AbstractTagProcessor.endElement(AbstractTagProcessor.java:189)
at com.itextpdf.tool.xml.pipeline.html.HtmlPipeline.close(HtmlPipeline.java:206)
at com.itextpdf.tool.xml.XMLWorker.endElement(XMLWorker.java:141)
at com.itextpdf.tool.xml.parser.XMLParser.endElement(XMLParser.java:395)
at com.itextpdf.tool.xml.parser.state.ClosingTagState.process(ClosingTagState.java:70)
at com.itextpdf.tool.xml.parser.XMLParser.parseWithReader(XMLParser.java:235)
at com.itextpdf.tool.xml.parser.XMLParser.parse(XMLParser.java:213)
at com.itextpdf.tool.xml.XMLWorkerHelper.parseXHtml(XMLWorkerHelper.java:175)
at xml.HtmlToPDF2.main(HtmlToPDF2.java:41)

我正在使用 itextpdf-5.1.2.jar 和 xmlworker-5.4.3.jar。请帮助


它与 xmlworker-5.4.1.jar 和 itextpdf-5.4.2.jar 完美配合。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 itext 的 XML 工作器 的相关文章

随机推荐

  • 为什么使用 SetUnhandledExceptionFilter 时堆栈遍历无法正常工作?

    我使用以下代码在异常时遍历堆栈 note 您必须在发布版本中运行它 以便正确地将堆栈跟踪的所需输出接收到控制台 而不是在调试模式下运行 否则它只会显示弹出窗口 include stdafx h include
  • MPI - 工作/池示例

    有没有为 MPI 使用工作 池 或生产者 消费者 方案的示例 至于我所做的一切 我只得到一个正在通过的应用程序 然后我的应用程序陷入僵局 Thanks 只要在谷歌上搜索 MPI Master Worker 或 MPI Master Slav
  • AttributeError:QDialog对象没有属性setCentralWidget

    我正在尝试使用 QT Designer 创建 GUI 我已使用以下教程将 ui 设计器文件转换为 py 文件 http pyqt sourceforge net Docs PyQt5 designer html 我有以下代码 Created
  • 如何知道我的 WPF 应用程序可以播放哪些视频格式?

    我有一个允许播放视频的小应用程序 首先 我不限制用户选择特定类型的文件 我想要做的是确保我可以播放用户选择的文件 如何获取可用编解码器的列表 或查询 WPF 应用程序的播放质量 MediaElement控制 建议的替代方案是在播放之前将任何
  • 使用 Java 8 中的泛型方法对集合进行排序

    以下方法执行排序 public List
  • 每次需要重新绘制时,如何抓取 qwidget /将其渲染在像素图中?

    我有一个 QWidget 我不想在屏幕上显示 相反 我想在每次重新绘制小部件时获取该小部件的像素图 以便将其发送到我正在处理的应用程序的另一部分 API 提供了两种方法来执行此操作 QPixmap grabWidget and QWidge
  • 按关键字进行惯用的 clojure 映射查找

    假设我有一个使用关键字作为键的 clojure 映射 def my car color candy apple red horsepower 450 我知道我可以通过使用关键字或映射作为函数并将另一个作为其参数来查找与关键字关联的值 my
  • Delphi 2009 中的通用 TList<> 在 IndexOf 上崩溃

    我已经看到很多关于 Delphi 2009 泛型中错误的提及 但从未预料到如此基本的东西会在 Update 3 中失败 同样如此 如果列表包含 1 个或多个项目 则在通用 TList 或 TObjectList 上调用 IndexOf 会导
  • 将 R 中的矩阵顺时针旋转 90 度

    我在 R 中有一个这样的矩阵 1 2 3 1 2 3 1 2 3 有没有一种简单的方法可以将整个矩阵顺时针旋转 90 度以获得这些结果 1 1 1 2 2 2 3 3 3 再次旋转 90 度 3 2 1 3 2 1 3 2 1 t不旋转条目
  • EXCEPTION_ACCESS_VIOLATION 崩溃的可能原因是什么?

    当我使用 Eclipse 运行项目的 java bean 时 我收到此崩溃报告 我完全不知道它是什么以及如何调试 谁能告诉我调试这个的可能方法 An unexpected error has been detected by Java Ru
  • 在 .NET 运行时解析 JSON

    我想从 WebServer 得到一些响应 返回的数据如下所示 3014887 string1 string http num60 webservice com u3014887 b c9c0625b jpg 0 3061529 string
  • 在树结构上实现 IEnumerable

    基于这些人的工作 http dvanderboom wordpress com 2008 03 15 treet implementing a non binary tree in c http www matthidinger com a
  • Python 线程。如何锁定线程?

    我试图了解线程和并发的基础知识 我想要一个简单的情况 其中两个线程重复尝试访问一个共享资源 代码 import threading class Thread threading Thread def init self t args thr
  • 使用Scrapy抓取时无法在源代码中找到显示的数据

    我在 Windows Vista 64 位上使用 Python org 版本 2 7 64 位 我使用 Scrapy 和正则表达式的组合从以下页面中名为 DataStore Prime 的 Javascript 项目中提取信息 http w
  • 未终止的字符串文字/无效或意外的标记

    为什么我会 语法错误 未终止的字符串文字 in Firefox and 未捕获的语法错误 无效或意外的标记 in Chrome当我跑 document ready function function addJSBeforeEndBody c
  • 如何在一次 jQuery 调用中在两个文本之间切换?

    假设你有一个 click 称呼 你可以在里面写什么代码 click 调用 以便每次单击所选元素时 都会更改两个字符串之间的文本 我假设 toggle and text 会在这里发挥作用 尝试按照以下思路进行操作 element bind c
  • 同时播放两种声音

    有没有办法同时播放两种声音 我知道SoundPlayer无法做到这一点 我不能使用SoundEffect因为我相信它只是 XNA 的一部分 所需的两个声音将在未知且随机的时间被调用 声音播放后需要进行控制 即 声音必须能够在播放完毕之前停止
  • 在 Android 的导航栏顶部绘制位图

    在我的应用程序中 我需要在所有正在运行的应用程序之上绘制一个位图 我创建了一个不可见的视图 并覆盖在所有应用程序之上 使用此覆盖视图 我可以在给定位置绘制位图 但无法在导航栏顶部绘制位图 我使用了以下布局参数 WindowManager L
  • sphinx可以链接到不在根文档下面的目录中的文档吗?

    我正在使用 Sphinx 来记录一个非 Python 项目 我要分发 doc每个子模块中的文件夹 包含submodule name rst文件来记录该模块 然后 我想将这些文件吸收到主层次结构中 为整个设计创建规范 I e Project
  • 使用 itext 的 XML 工作器

    import java io FileOutputStream import java io StringReader import com itextpdf text Document import com itextpdf text P