Skip to main content
All docs
V23.2

PdfCaretAnnotationFacade Class

Contains members used to manage caret annotations without access to their inner structure.

Namespace: DevExpress.Pdf

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

NuGet Package: DevExpress.Pdf.Core

Declaration

public class PdfCaretAnnotationFacade :
    PdfMarkupAnnotationFacade

The following members return PdfCaretAnnotationFacade objects:

Remarks

Create Caret Annotations

The code sample below adds a caret annotation to the Xbox phrase:

caret annotation

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

    // Access the first page properties
    PdfPageFacade pageFacade = processor.DocumentFacade.Pages[0];

    // Find the target phrase in the document
    string caretText = "Xbox";
    PdfTextSearchResults caretSearchResults = processor.FindText(caretText);

    if (caretSearchResults.Status == PdfTextSearchStatus.Found)
    {
      // Create a caret annotation
      PdfCaretAnnotationFacade caretAnnotation =
                pageFacade.AddCaretAnnotation(caretSearchResults.Rectangles[0].BoundingRectangle);
      caretAnnotation.Author = "Brian Zetc";
      caretAnnotation.Contents = "Trademark is missing";
    }

    // Save the result
    processor.SaveDocument("..\\..\\Result.pdf");
}

Edit Caret Annotations

The PdfPageFacade.Annotations property returns all page annotation properties. You can filter caret annotation properties, cast them to the PdfCaretAnnotationFacade class, and use class properties to modify annotation parameters.

The code sample below changes the color of all caret annotations:

caret annotation

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

    // Access the first page properties
    PdfPageFacade pageFacade = processor.DocumentFacade.Pages[0];

    // Retrieve all caret annotations
    var caretAnnotations = pageFacade.Annotations.Where
            (annotation => annotation.Type == PdfAnnotationType.Caret);
    foreach (PdfCaretAnnotationFacade pdfCaret in caretAnnotations) 
    {
        // Change the annotation color
        pdfCaret.Color = new PdfRGBColor(0.90, 0.00, 0.30);
    }
    // Save the result
    processor.SaveDocument("..\\..\\Result.pdf");
}

Flatten Caret Annotations

Call one of the following methods to flatten an annotation:

Method Description
PdfDocumentFacade.FlattenAnnotations Flattens document annotations.
PdfPageFacade.FlattenAnnotations Flattens annotations of a specific page.
PdfAnnotationFacade.Flatten() Flattens a specific annotation.

The code sample below flattens all caret annotations on the first page:

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

    // Access the first page properties
    PdfPageFacade page = processor.DocumentFacade.Pages[0];

    // Flatten all caret annotations
    page.FlattenAnnotations(PdfAnnotationType.Caret);
}

Remove Caret Annotations

Call the PdfAnnotationFacade.Remove() method to remove an annotation. The code sample below removes all caret annotations on the first page:

using DevExpress.Pdf;
using System.Linq;

using (PdfDocumentProcessor processor = new PdfDocumentProcessor())
{

  // Load a document
  processor.LoadDocument("..\\..\\Document.pdf");

  // Access the first page properties
  PdfPageFacade page = processor.DocumentFacade.Pages[0];

  // Retrieve all caret annotations
  var caretAnnotations = page.Annotations.Where
    (annotation => annotation.Type == PdfAnnotationType.Caret).ToList();

  // Remove all caret annotations
  foreach (PdfInkAnnotationFacade caret in caretAnnotations)
  {
      caret.Remove();
  }
}

Inheritance

See Also