2011-11-28 121 views
0

我有一個很奇怪的問題。我使用iTextSharp創建的文檔在Adobe acrobat中打開時顯示爲空,但在Chrome瀏覽器中正常工作。下面是我用它來生成我的文件的一些基本代碼:在谷歌瀏覽器中顯示PDF文本,但不在Adobe Acrobat中

mDocument = new iTextSharp.text.Document(PageSize.A4, 0, 0, 0, 0); 
mStream = new MemoryStream(); 
var writer = PdfWriter.GetInstance(mDocument, mStream); 
var font = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.NOT_EMBEDDED); 
mDocument.Open(); 
mContent = writer.DirectContent; 
mContent.SetFontAndSize(font, 12); 
mContent.SetTextMatrix(200, 200); 
mContent.ShowText(value); 
mDocument.Close(); 

有沒有其他人遇到這個問題,或者看到什麼,我很想念,可能導致此問題。

BR
安德烈亞斯

+0

你是直接將PDF寫入'OutputStream'還是生成並重定向到PDF? –

回答

0

就找到了解決問題的辦法。 Adobe Acrobat需要這個小改動才能工作。

mContent.BeginText(); // New line!!! 
mContent.ShowText(value); 
mContent.EndText(); // New line!!! 
+1

只是爲了警告你,當你開始使用'DirectContent'時,你正在繞過iText/iTextSharp「助手」,並被假定爲直接遵循PDF規範。正如你所看到的,PDF規範需要一個'BeginText'('BT')命令和一個匹配的'EndText'('ET')命令,但是還有許多其他的規則。如果你想/需要,絕對可以使用它,只是不作任何假設,如果你有任何問題,請查看Adobe的PDF規範。 –

相關問題