Back to Devexpress

PdfPageFacade.AddFreeTextAnnotation(PdfRectangle, String) Method

officefileapi-devexpress-dot-pdf-dot-pdfpagefacade-dot-addfreetextannotation-x28-devexpress-dot-pdf-dot-pdfrectangle-system-dot-string-x29.md

latest8.2 KB
Original Source

PdfPageFacade.AddFreeTextAnnotation(PdfRectangle, String) Method

Creates a free text annotation in the specified page rectangle.

Namespace : DevExpress.Pdf

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

NuGet Package : DevExpress.Pdf.Core

Declaration

csharp
public PdfFreeTextAnnotationFacade AddFreeTextAnnotation(
    PdfRectangle rect,
    string text
)
vb
Public Function AddFreeTextAnnotation(
    rect As PdfRectangle,
    text As String
) As PdfFreeTextAnnotationFacade

Parameters

NameTypeDescription
rectPdfRectangle

A page area to add the annotation.

| | text | String |

An annotation text.

|

Returns

TypeDescription
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:

csharp
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");
}
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)

  ' Define an annotation area
  Dim rectangle As New PdfRectangle(663, 526, 763, 576)

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

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

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

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:

csharp
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");
}
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)
  Dim calloutRectangle As PdfRectangle

  ' Find the target phrase in the document
  Dim calloutText As String = "Evaluation"
  Dim searchResults As PdfTextSearchResults = processor.FindText(calloutText)

  If searchResults.Status = PdfTextSearchStatus.Found Then

    ' Obtain the target phrase rectangle
    calloutRectangle = searchResults.Rectangles(0).BoundingRectangle

    ' Define an annotation area
    Dim rectangle As New PdfRectangle(663, 526, 763, 576)

    ' Create a free text annotation in this area
    Dim freeText As PdfFreeTextAnnotationFacade =
       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)
  End If

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

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:

csharp
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");
}
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)

  ' Define an annotation area
  Dim rectangle As New PdfRectangle(663, 526, 763, 576)

  ' Create a free text annotation
  Dim freeText As PdfFreeTextAnnotationFacade =
     pageFacade.AddFreeTextAnnotation(rectangle, "Free Text Annotation")

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

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

See Also

PdfPageFacade Class

PdfPageFacade Members

DevExpress.Pdf Namespace