2013-03-04 87 views
0

我有一堂課使用iTextSharp從PDF文件中提取圖片。iTextSharp無法使用傳真機生成的PDF?

我用掃描儀生成的PDF進行測試,它工作正常。

然後,我用傳真機生成的PDF進行測試,我得到一個IOException:.pdf沒有找到文件或資源。

我沒有任何線索,爲什麼它不能使用傳真機的PDF。 iTextSharp不支持來自傳真機的PDF或其他東西?

任何思想讚賞。由於

編輯

public List<Image> ExtractImagesFromFax(string sourcePdf) 
    { 
     var imgList = new List<Image>(); 

     try 
     {     
      var pdfReader = new PdfReader(sourcePdf); //Error is here ... 

      for (var i = 0; i <= pdfReader.XrefSize - 1; i++) 
      { 
       //code here 
      } 
      pdfReader.Close();     
     } 
     catch(Exception ex) 
     { 
      Console.WriteLine(ex.Message); 
     } 

     return imgList; 
    } 

我試圖iTextSharp.text.pdf.PdfReader閱讀PDF,但我得到了IOException異常,所以我不能走的更遠(只能用傳真機生成的PDF發生) 。

PDF文件:

+0

請提供樣本PDF和源代碼來重現問題。 – mkl 2013-03-04 11:05:48

+0

我更新了我的問題。 – Ragnarsson 2013-03-04 13:13:26

+0

@QuiTran你應該提供一個[sscce](http://sscce.org/) – Default 2013-03-04 13:21:52

回答

2

IOException說,你試圖打開一個文件名爲」 .PDF 」。可以預料該文件被命名爲「somefile.pdf」,但現在只有和擴展名pdf。你確定這是你想要閱讀的文件的名字嗎?你確定你的代碼是正確的嗎?

請注意,異常並不是真正由iText類引發的。 PdfReader使用C#類試圖打開文件,它是C#類,它告訴你文件找不到。這可能意味着兩件事:

  1. 您沒有使用正確的路徑。
  2. 您編寫的應用程序沒有足夠的權限來訪問該文件。

您可以通過編寫一些代碼將文件讀入字節數組而不使用iText來檢查。如果失敗了,你會發現你的問題。

+0

啊不,我剛剛給出了一個演示,說明在我的問題中這個錯誤是怎麼樣的。我的文件名是TEST_FAX_PDF.pdf, – Ragnarsson 2013-03-04 12:40:28

+1

我們可以看到PDF嗎?沒有看到它,我們無法調試。 – 2013-03-04 13:43:00

+0

請在更新的問題中找到pdf文件。謝謝! – Ragnarsson 2013-03-04 13:54:45

相關問題