Back to Devexpress

PdfCaretAnnotationFacade Class

officefileapi-devexpress-dot-pdf-fe5f7d87.md

latest8.0 KB
Original Source

PdfCaretAnnotationFacade Class

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

Namespace : DevExpress.Pdf

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

NuGet Package : DevExpress.Pdf.Core

Declaration

csharp
public class PdfCaretAnnotationFacade :
    PdfMarkupAnnotationFacade
vb
Public Class PdfCaretAnnotationFacade
    Inherits PdfMarkupAnnotationFacade

The following members return PdfCaretAnnotationFacade objects:

Remarks

Create Caret Annotations

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

csharp
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");
}
vb
Using processor As New PdfDocumentProcessor()
  ' Load a document
  processor.LoadDocument("..\..\Document.pdf")

  ' Access the first page properties
  Dim pageFacade As PdfPageFacade = processor.DocumentFacade.Pages(0)

  ' Find the target phrase in the document
  Dim caretText As String = "Xbox"
  Dim caretSearchResults As PdfTextSearchResults = processor.FindText(caretText)

  If caretSearchResults.Status = PdfTextSearchStatus.Found Then

    ' Create a caret annotation
    Dim caretAnnotation As PdfCaretAnnotationFacade = pageFacade.AddCaretAnnotation(caretSearchResults.Rectangles(0).BoundingRectangle)
    caretAnnotation.Author = "Brian Zetc"
    caretAnnotation.Contents = "Trademark is missing"
  End If

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

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:

csharp
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");
}
vb
Using processor As New PdfDocumentProcessor()
  ' Load a document
  processor.LoadDocument("..\..\Document.pdf")

  ' Access the first page properties
  Dim pageFacade As PdfPageFacade = processor.DocumentFacade.Pages(0)

  ' Retrieve all caret annotations
  Dim caretAnnotations = pageFacade.Annotations.Where(Function(annotation) annotation.Type = PdfAnnotationType.Caret)
  For Each pdfCaret As PdfCaretAnnotationFacade In caretAnnotations
    ' Change the annotation color
    pdfCaret.Color = New PdfRGBColor(0.90, 0.00, 0.30)
  Next pdfCaret
  ' Save the result
  processor.SaveDocument("..\..\Result.pdf")
End Using

Flatten Caret Annotations

Call one of the following methods to flatten an annotation:

MethodDescription
PdfDocumentFacade.FlattenAnnotationsFlattens document annotations.
PdfPageFacade.FlattenAnnotationsFlattens annotations of a specific page.
PdfAnnotationFacade.Flatten()Flattens a specific annotation.

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

csharp
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);
}
vb
Using processor As New PdfDocumentProcessor()

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

  ' Access the first page properties
  Dim page As PdfPageFacade = processor.DocumentFacade.Pages(0)

  ' Flatten all caret annotations
  page.FlattenAnnotations(PdfAnnotationType.Caret)
End Using

Remove Caret Annotations

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

csharp
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();
  }
}
vb
Imports DevExpress.Pdf
Imports System.Linq

Using processor As New PdfDocumentProcessor()
processor

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

  ' Access the first page properties
  Dim page As PdfPageFacade = processor.DocumentFacade.Pages(0)

  ' Retrieve all caret annotations
  Dim freeTextAnnotations = page.Annotations.Where
    (Function(annotation) annotation.Type = PdfAnnotationType.Caret).ToList()

  ' Remove all caret annotations
  For Each caret As PdfInkAnnotationFacade In caretAnnotations
    caret.Remove()
  Next caret
End Using

Inheritance

Object PdfAnnotationFacade PdfMarkupAnnotationFacade PdfCaretAnnotationFacade

See Also

PdfCaretAnnotationFacade Members

DevExpress.Pdf Namespace