2010-08-13 241 views
5

我使用iTextSharp創建簡單的測試PDF文檔。我只是使用PdfContentByte來顯示一些文本。這是代碼:使用iTextSharp創建的簡單PDF無法由Acrobat Reader打開?

Document document = new Document(); 
    Stream outStream = new FileStream("D:\\aaa\\test.pdf", FileMode.OpenOrCreate); 
    PdfWriter writer = PdfWriter.GetInstance(document, outStream); 
    document.Open(); 
    PdfContentByte to = writer.DirectContent; 
    to.BeginText(); 
    to.SetFontAndSize(BaseFont.CreateFont(), 12); 
    to.SetTextMatrix(0, 0); 
    to.ShowText("aaa"); 
    to.EndText(); 
    document.Close(); 
    outStream.Close(); 

被創建的文件,但是當我嘗試打開它(使用Acrobat Reader軟件),我得到的是以下信息:

時出錯打開此 文件。閱讀 本文檔(14)時出現問題。

問題在哪裏?我如何解決它?謝謝

+0

有什麼建議嗎?我想這只是非常簡單的事情,就像我非常愚蠢的錯誤,但我只是不能看到它... – drasto 2010-08-13 12:56:38

+1

我跑你的代碼,並沒有得到任何錯誤,你使用的是哪種版本的ITextSharp? – dada686 2010-08-13 12:59:56

+0

甚至當試圖打開生成的文件?當我運行C#代碼時,我不會收到錯誤,只有當我打開生成的文件時。 – drasto 2010-08-13 13:03:11

回答

3

重新啓動VS後問題解決了。沒有更改代碼。

2

我似乎無法複製您遇到的問題,但請考慮到資源的潛在泄漏,由於可能遇到的特殊情況,妥善Dispose()這些對象爲這樣:

using (Stream outStream = new FileStream("D:\\aaa\\test.pdf", FileMode.OpenOrCreate)) 
    { 
     Document document = new Document(); 
     PdfWriter writer = PdfWriter.GetInstance(document, outStream); 

     document.Open(); 
     try 
     { 
      PdfContentByte to = writer.DirectContent; 

      to.BeginText(); 
      try 
      { 
       to.SetFontAndSize(BaseFont.CreateFont(), 12); 
       to.SetTextMatrix(0, 0); 
       to.ShowText("aaa"); 
      } 
      finally 
      { 
       to.EndText(); 
      } 
     } 
     finally 
     { 
      document.Close(); 
     } 
    } 
相關問題