2010-05-06 95 views
1

好的...我试图使用最新版本的ITextSharp将XML文件转换为PDF。它不工作。ITextSharp问题 - 将XML转换为PDF

SourceForge上的文档似乎没有跟上实际版本;所提供示例中的代码甚至不会在最新版本下编译。

这里是我的测试XML:

<Remittance> 
<RemitHeader> 
<Payer>BlueCross</Payer> 
<Provider>Maricopa</Provider> 
<CheckDate>20100329</CheckDate> 
<CheckNumber>123456789</CheckNumber> 
</RemitHeader> 
<RemitDetail> 
<NPI>NPI_GOES_HERE</NPI> 
<Patient>Patient Name</Patient> 
<PCN>0034567</PCN> 
<DateOfService>20100315</DateOfService> 
<TotalCharge>125.57</TotalCharge> 
<TotalPaid>55.75</TotalPaid> 
<PatientShare>35</PatientShare> 
</RemitDetail> 
</Remittance> 

这里是我试图用它来把它转换成一个PDF的代码。现在

Document doc = new Document(PageSize.LETTER, 36, 36, 36, 36); 
    iTextSharp.text.pdf.PdfWriter.GetInstance(doc, 
    new StreamWriter(fileOutputPath).BaseStream); 
    doc.Open(); 
    SimpleXMLParser.Parse((ISimpleXMLDocHandler)doc, 
    new StreamReader(fileInputPath).BaseStream); 
    doc.Close(); 

,我敢肯定的(ISimpleXMLDocHandler)doc片行不通的,但我不能找到真正在这两个一)实现ISimleXMLDocHandler源东西和b)将接受一个标准的XML文档解析为PDF。

仅供参考 - 我确实尝试了一个较旧的版本,它将使用sourceforge中的示例代码进行编译,但它也无法正常工作。

+1

我记得运行的东西,表明他们将非PDF功能(HTML和RTF肯定)分隔成单独的dll。也许他们将XML功能拉入单独的dll中? – 2010-05-06 19:40:47

+0

@John Fisher-我不这么认为(我当然可能是错的),但我在任何其他名称空间中都找不到任何东西;并且只有一个.dll可用... – AllenG 2010-05-06 20:35:15

+0

也许我误解了它,它只是一个名称空间更改。 – 2010-05-06 21:04:42

回答

2

浏览5.0.2代码后,看起来没有任何文档只会将XML转换为PDF。因此,除非您可以在网上或旧版iTextSharp上找到类似的代码,否则您需要自己编写代码。

+1

看起来你是对的。我想我会自己写。 – AllenG 2010-05-07 17:25:50

0

iText XML to PDF要求根据itext.dtd格式化XML(请Google负责任)。根据DTD,您还可以使用tagmap.xml将XML实体映射到适当的实体。