Back to Devexpress

PdfAnnotationData Class

officefileapi-devexpress-dot-pdf-164f526e.md

latest6.8 KB
Original Source

PdfAnnotationData Class

Base class for document annotations.

Namespace : DevExpress.Pdf

Assembly : DevExpress.Pdf.v25.2.Core.dll

NuGet Package : DevExpress.Pdf.Core

Declaration

csharp
public class PdfAnnotationData
vb
Public Class PdfAnnotationData

Remarks

Create an Annotation

Call the PdfDocumentProcessor.AddTextAnnotation method to create a text annotation at the specified page area or point.

Call the PdfDocumentProcessor.AddTextMarkupAnnotation method to create a text markup annotation at the specified page area. If the target area does not contain text, the annotation is not created.

The code sample below highlights text with blue and adds a sticky note at the page corner.

csharp
using DevExpress.Pdf;
//...
using (PdfDocumentProcessor processor = new PdfDocumentProcessor())
{
    //Load a document:
    processor.LoadDocument("..\\..\\Document.pdf");

    //Add a text markup annotation at the first page:
    PdfTextMarkupAnnotationData textMarkup =
    processor.AddTextMarkupAnnotation(1, new PdfRectangle(90, 100, 240, 230),
    PdfTextMarkupAnnotationType.Highlight);

    if (textMarkup != null)
    {
        //Specify the annotation properties:
        textMarkup.Author = "Bill Smith";
        textMarkup.Contents = "Important!";
        textMarkup.Color = new PdfRGBColor(0.8, 0.2, 0.1);
    }

    //Add a sticky note at the first page:
    PdfTextAnnotationData textAnnotation =
    processor.AddTextAnnotation(1, new PdfPoint(100, 300));

    //Specify the annotation parameters:
    textAnnotation.Author = "Nancy Davolio";
    textAnnotation.Checked = true;
    textAnnotation.Color = new PdfRGBColor(0.8, 0.2, 0.1);
    textAnnotation.Contents = "Please proofread this document";
    textAnnotation.IconName = PdfTextAnnotationIconName.Check;

    //Save the result:
    processor.SaveDocument("..\\..\\Result.pdf");
}
vb
Imports DevExpress.Pdf
'...
Using processor As New PdfDocumentProcessor()

    'Load a document:
    processor.LoadDocument("..\..\Document.pdf")

    'Add a text markup annotation on the first page:
    Dim textMarkup As PdfTextMarkupAnnotationData =
    processor.AddTextMarkupAnnotation(1, New PdfRectangle(90, 100, 240, 230), 
    PdfTextMarkupAnnotationType.Highlight)

    If textMarkup IsNot Nothing Then
        'Specify the annotation properties:
        textMarkup.Author = "Bill Smith"
        textMarkup.Contents = "Important!"
        textMarkup.Color = New PdfRGBColor(0.8, 0.2, 0.1)
    End If

    'Add a sticky note at the first page:
    Dim textAnnotation As PdfTextAnnotationData =
    processor.AddTextAnnotation(1, New PdfPoint(100, 300))

    'Specify the annotation parameters:
    textAnnotation.Author = "Nancy Davolio"
    textAnnotation.Checked = True
    textAnnotation.Color = New PdfRGBColor(0.8, 0.2, 0.1)
    textAnnotation.Contents = "Please proofread this document"
    textAnnotation.IconName = PdfTextAnnotationIconName.Check

    'Save the result:
    processor.SaveDocument("..\..\Result.pdf")
End Using

Access Annotations

The PdfDocumentProcessor.GetMarkupAnnotationData method allows you to retrieve all markup annotations located at the specified page. Use the PdfMarkupAnnotationDataExtensions method to get annotations or a specific type.

The code sample below gets all annotations and adds a review to the first annotation:

csharp
using (PdfDocumentProcessor processor = new PdfDocumentProcessor())
{
    processor.LoadDocument("..\\..\\Document.pdf");

    var annotations = processor.GetMarkupAnnotationData(1);
    annotations[0].AddReview("Borman Aaron Lewis", PdfAnnotationReviewStatus.Completed);
}
vb
Using processor As New PdfDocumentProcessor()
    processor.LoadDocument("..\..\Document.pdf")

    Dim annotations = processor.GetMarkupAnnotationData(1)
    annotations(0).AddReview("Borman Aaron Lewis", PdfAnnotationReviewStatus.Completed)
End Using

Delete Annotations

Call the PdfDocumentProcessor.DeleteMarkupAnnotations method to remove all markup annotations from the specified page.

To delete a specific annotation, call the PdfDocumentProcessor.DeleteMarkupAnnotation method. Pass the target PdfMarkupAnnotationData object as a parameter to this method.

This example shows how to delete text markup annotations created by a specific author.

csharp
using DevExpress.Pdf;
using System.Linq;
//...
private static void DeleteAnnotations(PdfDocumentProcessor processor)
{
    for (int i = 0; i <= processor.Document.Pages.Count; i++)
    {
        //Remove Borman Aaron Lewis's markup annotations from a page.
        processor.DeleteMarkupAnnotations(processor.GetMarkupAnnotationData(i)
        .Where(annotation => annotation.Author.Contains("Borman Aaron Lewis")));
    }
}
vb
Imports DevExpress.Pdf
Imports System.Linq
'...
Private Shared Sub DeleteAnnotations(ByVal processor As PdfDocumentProcessor)
    For i As Integer = 0 To processor.Document.Pages.Count
        'Remove Borman Aaron Lewis's markup annotations from a page.
        processor.DeleteMarkupAnnotations(processor.GetMarkupAnnotationData(i).Where(Function(annotation) annotation.Author.Contains("Borman Aaron Lewis")))
    Next i
End Sub

Inheritance

Object PdfAnnotationData PdfMarkupAnnotationData

PdfTextMarkupAnnotationData

PdfTextAnnotationData

See Also

PdfAnnotationData Members

DevExpress.Pdf Namespace