2011-04-21 17 views
0

我使用iTextSharp的图书馆,专门查看.XML文件,并将它们转换成pdf文件如下:iTextSharp的包括如何使用GenericTag XML解析

VAR docWriter = PdfWriter.GetInstance(文件,新的FileStream(” DOC.pdf“,FileMode.Create));

ITextHandler xmlHandler = new ITextHandler(document);

xmlHandler.Parse(“MLDOC.xml”);

我需要知道是否有任何方法可以在我的.xml文件中的标签中包含任何属性,以表明它们是GenericTag,否则我如何识别包含PdfAnnotation的段落。 我试着订阅事件OnGenericTag,但使用XML解析器:xmlHandler.Parse(“MLDOC.xml”);,此方法从未执行

谢谢!

回答

0

您使用的是旧版本的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就会有这个标签。可能不是你想要的。 }