officefileapi-devexpress-dot-pdf-fe5f7d87.md
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
public class PdfCaretAnnotationFacade :
PdfMarkupAnnotationFacade
Public Class PdfCaretAnnotationFacade
Inherits PdfMarkupAnnotationFacade
The following members return PdfCaretAnnotationFacade objects:
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");
}
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
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");
}
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
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);
}
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
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();
}
}
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
Object PdfAnnotationFacade PdfMarkupAnnotationFacade PdfCaretAnnotationFacade
See Also