Skip to main content
All docs
V25.1
  • PdfCaretAnnotationFacade Class

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

    Namespace: DevExpress.Pdf

    Assembly: DevExpress.Pdf.v25.1.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