2013-04-15 53 views
1

我試圖讀取所有註釋的內容使用PDFSharp同時跟蹤哪個頁面,他們是在一個PDF文件內。在「內容」,我試圖找回在PdfItem的「結果視圖」它說:「擴大結果視圖將枚舉了IEnumerable」閱讀PDF註釋內容「結果視圖」內容C#

我用下面的代碼:

private void LoadCommentList(string file) //using pdfsharp 
    { 
     PdfSharp.Pdf.PdfDocument inputDoc = PdfSharp.Pdf.IO.PdfReader.Open(file, PdfDocumentOpenMode.Import); 
     PdfSharp.Pdf.PdfDocument document = new PdfSharp.Pdf.PdfDocument(); 
     PdfSharp.Pdf.PdfPage page = new PdfSharp.Pdf.PdfPage(); 
     for (int i = 0; i < inputDoc.PageCount; i++) 
     { 
      page = inputDoc.Pages[i]; 
      page = document.AddPage(page); 

      for (int p = 0; p < document.Pages[i].Annotations.Elements.Count; p++) 
      { 
       PdfItem textAnnot = document.Pages[i].Annotations.Elements.GetObject(p); 
       //add specific item in "Results View" to CommentList here...... 
      } 
     } 
    } 

如何以編程方式讀取「結果視圖」,以便我可以獲取PDF註釋的內容?

感謝您的幫助。

+0

的foreach? ToList()?你究竟需要什麼? – Lanorkin

+0

foreach將工作得很好。最終,我需要獲取存儲在項目中的信息,標籤爲「/ Content」 – sflyer17

回答

1

原來這是比我嘗試的方法更簡單的方法。改爲使用PdfAnnotation對象,而不是使用Pdfitem對象。應該從一開始就這樣做。代碼示例如下:

private void LoadCommentList(string file) //using pdfsharp 
    { 
     PdfSharp.Pdf.PdfDocument inputDoc = PdfSharp.Pdf.IO.PdfReader.Open(file, PdfDocumentOpenMode.Import); 
     PdfSharp.Pdf.PdfDocument document = new PdfSharp.Pdf.PdfDocument(); 
     PdfSharp.Pdf.PdfPage page = new PdfSharp.Pdf.PdfPage(); 

     for (int i = 0; i < inputDoc.PageCount; i++) 
     { 
      page = inputDoc.Pages[i]; 
      page = document.AddPage(page); 

      for (int p = 0; p < document.Pages[i].Annotations.Elements.Count; p++) 
      { 
       PdfAnnotation textAnnot = document.Pages[i].Annotations[p]; 

       string content = textAnnot.Contents; 
       if (content != null) 
       { 
        CommentList.Add(content); 
       } 

      } 
     } 
    }