PdfCaretAnnotationFacade Class
Contains members used to manage caret annotations without access to their inner structure.
Namespace: DevExpress.Pdf
Assembly: DevExpress.Pdf.v24.2.Core.dll
NuGet Package: DevExpress.Pdf.Core
#Declaration
public class PdfCaretAnnotationFacade :
PdfMarkupAnnotationFacade
#Related API Members
The following members return PdfCaretAnnotationFacade objects:
#Remarks
#Create Caret Annotations
The code sample below adds a caret annotation to the Xbox phrase:
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:
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 |
---|---|
Pdf |
Flattens document annotations. |
Pdf |
Flattens annotations of a specific page. |
Pdf |
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();
}
}