2013-04-15 2 views
1

Я пытаюсь прочитать содержание всех аннотаций в PDF-документе, используя PDFSharp, отслеживая, на какой странице они находятся. «Содержимое», что я пытаюсь получить это в «Result View» в PdfItem, где он говорит: «Расширение Просмотр результатов Перечислим IEnumerable»Прочитать содержание аннотации в формате PDF с помощью PDFSharp «Просмотр результата» Содержимое 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? К списку()? что вам нужно? – Lanorkin

+0

foreach будет работать нормально. В конечном итоге мне нужно получить информацию, хранящуюся в элементе, с меткой «/ Content» – sflyer17

ответ

1

Оказалось, что это более простой способ выполнить это, чем метод, который я пытался. Вместо использования объекта Pdfitem вместо этого используйте объект PdfAnnotation. Должно было сделать это с самого начала. Пример кода ниже:

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); 
       } 

      } 
     } 
    }