【问题标题】:iTextSharp How include GenericTag using XML ParsingiTextSharp 如何使用 XML 解析包含 GenericTag
【发布时间】:2011-08-10 09:10:57
【问题描述】:

我正在使用 iTextSharp 库,专门用于查看 .xml 文档并将其转换为 .pdf 文件,如下所示:

var docWriter = PdfWriter.GetInstance(document, new FileStream("DOC.pdf", FileMode.Create));

ITextHandler xmlHandler = new ITextHandler(document);

xmlHandler.Parse("MLDOC.xml");

我需要知道是否有任何方法可以在我的 .xml 文件的标签中包含任何属性以指示它们是 GenericTag,或者我如何识别包含 PdfAnnotation 的段落。 我尝试订阅事件 OnGenericTag,但使用 XML 解析器:xmlHandler.Parse("MLDOC.xml");,此方法永远不会执行

谢谢!

【问题讨论】:

    标签: pdf-generation itextsharp itext xml-parsing


    【解决方案1】:

    您使用的是旧版本的 iText。我强烈建议您获取更新的版本...如果您对 AGPL 没问题,可以使用 5.0 后的版本,如果您更愿意坚持使用 LGPL/MPL,请使用之前的版本 (4.2 IIRC)。

    不再有 iTextHandler 类了。

    在 iText 调用 OnGenericTag 处理程序之前,您需要将通用标签添加到 iText 元素中。

    我能想到的唯一方法是更改​​源。对于 HTMLWorker,您必须更改 FactoryProperties,以便它会寻找一些您为通用标签的值引入的魔法属性。

    在 5.0.6 iTextSharp 源代码中,您似乎想要修改 ElementFactory.CreateChunk(),并插入如下内容:

    if (chain.HasProperty(MY_MAGIC_PROPERTY)) {
      ck.setGenericTag( chain[MY_MAGIC_PROPERTY] );
    }
    

    问题:ChainedProperties 传播到其子节点。如果您使用通用标签标记表,则该表中的 EVER CHUNK 将具有该标签。可能不是你想要的。 }

    【讨论】:

      猜你喜欢
      • 2019-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-03
      • 1970-01-01
      相关资源
      最近更新 更多