Чтение содержимого аннотации PDF с помощью PDFSharp "Result View" Content C#

Я пытаюсь прочитать содержимое всех аннотаций в документе PDF с помощью PDFSharp, отслеживая, на какой странице они находятся. "Содержимое", которое я пытаюсь получить, находится в "Представлении результатов" PdfItem, где говорится "Расширение представления результатов будет перечислять IEnumerable"

Я использую следующий код:

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?

Спасибо за вашу помощь.

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

            }
        }
    }
Другие вопросы по тегам