gpt4 book ai didi

itextsharp - 使用最新版本的 iText XML 到 PDF

转载 作者:行者123 更新时间:2023-12-04 01:09:58 26 4
gpt4 key购买 nike

我找到了一些示例,展示了如何使用 iText XML 文档将 XML 转换为 PDF。但它们都适用于旧版本 4.x。是否有任何示例或有人可以发布所需/更新代码的示例以在 5.x 版中执行相同操作?

所有示例都引用了这样的代码,但我找不到在新版本中用什么来替换 ITextHandler 类。
http://www.ridgway.co.za/archive/2005/07/31/itextsharpxmltopdfexample.aspx

Document document = new Document();
PdfWriter.GetInstance(document, new FileStream("ExampleDoc.pdf", FileMode.Create));
ITextHandler xmlHandler = new ITextHandler(document);
xmlHandler.Parse("ExampleDoc.xml");

另外,我不想从 HTML 转换为 PDF。 CSS 样式永远不会像预期的那样出现。

编辑以提高它,在这里真的需要一些帮助。有人吗?

最佳答案

很久以前,iText 使用专有语法处理 XML 文件的功能已被删除。见 thisthis直接从作者那里得到答案。相反,我们鼓励您使用全局公认的 XML 标准,即 XHTML。

我知道你说过你不想使用 HTML,因为它永远不会正确出现,但也许你可以发布一些你正在尝试的示例,我们可以提供帮助。另外,请确保您使用的是 XMLWorker 而不是 HTMLWorker。使用它时,请参阅这些链接以获取其他帮助/信息。

  • List of supported CSS properties
  • Controlling fonts in HTML processing
  • Adding base64 encoded images
  • Changing the default image root path for relative images

  • 编辑

    此编辑是对@JohnC 评论的回应

    我不能代表 iText 团队及其原因发言,但我可以猜测一些事情。 PDF 没有“段落”、“单词”、“表格”等。相反,PDF 有文本、绘图(线条、图案)和图像。如果你想手动做这些事情,你可以使用原始 PdfContentByte对象。但是,我们鼓励您使用 iText 的抽象,例如 ParagraphPdfPTable其中使用 PdfContentByte代表你。

    要使 iText 支持 XML 格式,它首先需要创建自己的专有 DTD 和/或 XML 架构。如果添加了任何功能,则需要对架构进行正确的版本控制,这可能会给消费者带来问题和困惑。然后它需要构建/维护一个解析器,将 XML 抽象转换为 iText 抽象或原始 PDF 命令。对于前者,你有一个抽象与一个正在试图打破的抽象对话。对于后者,您现在有两个抽象实现,它们最终会遇到功能奇偶校验问题。

    此外,XML 代表什么?段落、文本块、图像和表格?听起来像 HTML,所以没有必要重复那种模式。或者是“使用字体 ABC 将内容 Z 放在坐标 X、Y 处”?这就是 PdfContentByte进来了。确实,可能有一个本地解析器,但我猜没有太多人要求一个。或者 XML 是基于您自己的数据的您自己的格式,例如 <book><inventory> ?如果是这样,那么 iText 也真的不知道如何设置样式。但是,您可以利用 .Net/Java 和 XSLT 将您的 XML 转换为它知道的 XHTML 命令。

    关于itextsharp - 使用最新版本的 iText XML 到 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20670630/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com