2010-05-06 96 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實體映射到適當的實體。