Получение текста и расположения аннотаций страницы PDF с помощью библиотеки Syncfusion WinRT

В проекте приложения для магазина Windows я использую библиотеку Syncfusion для WinRT.

у меня есть этот код для добавления аннотаций на страницу PDF

                ....
                var page = pdfDocument.Pages[pagn];
                ....
                string pdfAnnotationMsg = "Test Annotation 123";
                PdfPopupAnnotation popupAnnotation = new PdfPopupAnnotation(new RectangleF((float)x, (pageHeight * 1.325f) - (float)y - VertOff2, 5, 5), pdfAnnotationMsg);
                popupAnnotation.Border.Width = 1;
                popupAnnotation.Open = false;
                popupAnnotation.Border.HorizontalRadius = 1;
                popupAnnotation.Border.VerticalRadius = 1;
                popupAnnotation.Icon = PdfPopupIcon.Comment;
                page.Annotations.Add(popupAnnotation);

Аннотация добавляется правильно, но теперь я пытаюсь получить доступ к ее содержимому и местоположению
У меня есть эта переменная:

PdfLoadedAnnotationCollection annotationCollection = pdfDocument.Pages[0].Annotations;

и его номер счетчика показывает правильное количество аннотаций, но если я использую

annotationCollection[0].Text

я получаю следующее исключение:

«В Syncfusion.Pdf.WinRT.DLL произошло первое случайное исключение типа System.NullReferenceException».

введите здесь описание изображения

Как правильно получить текст и местоположение из разных аннотаций?


person Ric    schedule 23.04.2015    source источник


Ответы (1)


Аннотации будут добавлены только после сохранения документа PDF. Сохраните документ PDF перед загрузкой коллекции аннотаций. Я прикрепил фрагмент кода для справки.

        var page = doc.Pages[pagn];
        string pdfAnnotationMsg = "Test Annotation 123";
        PdfPopupAnnotation popupAnnotation = new PdfPopupAnnotation(new RectangleF((float)x, (pageHeight * 1.325f) - (float)y - VertOff2, 5, 5), pdfAnnotationMsg);
        popupAnnotation.Border.Width = 1;
        popupAnnotation.Open = false;
        popupAnnotation.Border.HorizontalRadius = 1;
        popupAnnotation.Border.VerticalRadius = 1;
        popupAnnotation.Icon = PdfPopupIcon.Comment;
        page.Annotations.Add(popupAnnotation);

        //Save the PDF document
        MemoryStream ms=new MemoryStream();
        doc.Save(ms);
        doc.Close(true);

        //Load the PDF document again
        doc = new PdfLoadedDocument(ms);
        PdfLoadedAnnotationCollection annotationCollection = doc.Pages[0].Annotations;
        var text = annotationCollection[0].Text;

Пожалуйста, дайте нам знать, если у вас есть какие-либо проблемы.

person KarthikeyanC    schedule 06.05.2015