Skip to main content
All docs
V23.2

PdfPageFacade.AddFreeTextAnnotation(PdfRectangle, String) Method

Creates a free text annotation in the specified page rectangle.

Namespace: DevExpress.Pdf

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

NuGet Package: DevExpress.Pdf.Core

Declaration

public PdfFreeTextAnnotationFacade AddFreeTextAnnotation(
    PdfRectangle rect,
    string text
)

Parameters

Name Type Description
rect PdfRectangle

A page area to add the annotation.

text String

An annotation text.

Returns

Type Description
PdfFreeTextAnnotationFacade

An object that contains free text annotation properties.

Remarks

Example: Create a Text Box Annotation

The code sample below creates a free text annotation:

free text

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

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

    // Define an annotation area
    PdfRectangle rectangle = new PdfRectangle(663, 526, 763, 576);

    // Create a free text annotation in this area
    PdfFreeTextAnnotationFacade freeText =
       pageFacade.AddFreeTextAnnotation(rectangle, "Free Text Annotation");

    // Specify annotation parameters
    freeText.Author = "Nancy Davolio";
    freeText.BorderWidth = 2;

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

Example: Create a Callout Annotation

Call a free text annotation’s SetCallout method to add a callout line to the annotation. The method call sets the annotation’s Intent property to FreeTextCallout.

The code sample below creates a callout annotation pointed at a specific phrase:

callout

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

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

    // Find the target phrase in the document
    string calloutText = "Evaluation";
    PdfTextSearchResults searchResults = processor.FindText(calloutText);

    if (searchResults.Status == PdfTextSearchStatus.Found)
    {
        // Obtain the target phrase rectangle
        calloutRectangle = searchResults.Rectangles[0].BoundingRectangle;

        // Define an annotation area
        PdfRectangle rectangle = new PdfRectangle(663, 526, 763, 576);

        // Create a free text annotation in this area
        PdfFreeTextAnnotationFacade freeText =
            pageFacade.AddFreeTextAnnotation(rectangle, "Free Text Annotation");

        // Specify annotation parameters
        freeText.Author = "Nancy Davolio";

        // Add a callout line pointed at the center of the target phrase
        freeText.SetCallout(PdfAnnotationLineEndingStyle.OpenArrow, calloutRectangle.Center);
    }

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

Example: Create a Typewriter Annotation

Set a free text annotation’s Intent property to FreeTextTypewriter to convert the annotation to a typewriter (click-to-type) object. This object has no border, callout line, or padding between the text and annotation bounds.

The code sample below creates a typewriter annotation:

typewriter annotation

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

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

    // Define an annotation area
    PdfRectangle rectangle = new PdfRectangle(663, 526, 763, 576);

    // Create a free text annotation
    PdfFreeTextAnnotationFacade freeText =
        pageFacade.AddFreeTextAnnotation(rectangle, "Free Text Annotation");

    // Specify annotation parameters
    freeText.Author = "Nancy Davolio";
    freeText.Intent = PdfFreeTextAnnotationIntent.FreeTextTypewriter;

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