Skip to content

Note, FreeText, and Caret

This guide covers Note, FreeText, and Caret annotation types.

Note Annotations

Note annotations show as an icon on the page; a popup opens to view or edit content. Notes are the most common text comment type.

Core Methods

MethodDescription
getIconName() / setIconName(String)Icon name ("Comment", "Key", "Note", "Help", etc.)
getOpenStatus() / setOpenStatus(boolean)Whether popup opens by default
getReplyTo()Parent annotation (for replies)
isStateAnnot()Whether this is a state annotation
getState() / setState(int)Review/mark state
getStateModel()State model type

State Constants

Marked model (Markup.e_StateModelMarked)

ConstantDescription
Markup.e_StateMarkedMarked
Markup.e_StateUnmarkedUnmarked

Review model (Markup.e_StateModelReview)

ConstantDescription
Markup.e_StateAcceptedAccepted
Markup.e_StateRejectedRejected
Markup.e_StateCancelledCancelled
Markup.e_StateCompletedCompleted
Markup.e_StateDeferredDeferred
Markup.e_StateFutureFuture
Markup.e_StateNoneNone

Example: Create a Note

java
import com.foxit.sdk.common.fxcrt.RectF;
import com.foxit.sdk.pdf.PDFPage;
import com.foxit.sdk.pdf.annots.Annot;
import com.foxit.sdk.pdf.annots.Note;

PDFPage page = doc.getPage(0);

RectF rect = new RectF(100, 100, 124, 124);
Note note = new Note(page.addAnnot(Annot.e_Note, rect));

note.setIconName("Comment");
note.setBorderColor(0xff0000ff);
note.setContent("审核意见:此段表述需要修改。");
note.setTitle("审阅者");
note.setOpenStatus(false);

note.resetAppearanceStream();

Example: Add a Reply

java
import com.foxit.sdk.pdf.annots.Markup;
import com.foxit.sdk.pdf.annots.Note;

Markup markup = new Markup(page.getAnnot(0));

Note reply = markup.addReply();
reply.setContent("已修改,请重新审阅。");
reply.setTitle("作者");
reply.resetAppearanceStream();

int replyCount = markup.getReplyCount();

FreeText Annotations

FreeText renders text on the page (not as an icon). Subtypes depend on intent:

SubtypeIntentDescription
Free text""Text in a rectangle
Typewriter"FreeTextTypewriter"Typewriter-style text
Callout"FreeTextCallout"Callout with leader line

Core Methods

MethodDescription
getAlignment() / setAlignment(int)Alignment (0=left, 1=center, 2=right)
getDefaultAppearance() / setDefaultAppearance(DefaultAppearance)Font, size, color
getFillColor() / setFillColor(int)Background fill
getInnerRect() / setInnerRect(RectF)Inner text area
getRotation() / setRotation(int) / rotate(int)Rotation
getCalloutLinePoints() / setCalloutLinePoints(PointFArray)Callout line points
getCalloutLineEndingStyle() / setCalloutLineEndingStyle(int)Callout line end style

Example: Typewriter

java
import com.foxit.sdk.common.fxcrt.RectF;
import com.foxit.sdk.pdf.PDFPage;
import com.foxit.sdk.pdf.annots.Annot;
import com.foxit.sdk.pdf.annots.DefaultAppearance;
import com.foxit.sdk.pdf.annots.FreeText;
import com.foxit.sdk.pdf.annots.Markup;

PDFPage page = doc.getPage(0);

RectF rect = new RectF(100, 500, 350, 540);
FreeText freeText = new FreeText(page.addAnnot(Annot.e_FreeText, rect));

freeText.setIntent("FreeTextTypewriter");

freeText.setContent("这是通过打字机注释添加的文本。");

DefaultAppearance da = new DefaultAppearance();
da.setText_size(14);
da.setText_color(0xff000000);
freeText.setDefaultAppearance(da);

freeText.setAlignment(0);
freeText.setOpacity(1.0f);
freeText.resetAppearanceStream();

Example: Callout

java
import com.foxit.sdk.common.fxcrt.PointF;
import com.foxit.sdk.common.fxcrt.PointFArray;
import com.foxit.sdk.common.fxcrt.RectF;
import com.foxit.sdk.pdf.PDFPage;
import com.foxit.sdk.pdf.annots.Annot;
import com.foxit.sdk.pdf.annots.FreeText;
import com.foxit.sdk.pdf.annots.Markup;

PDFPage page = doc.getPage(0);

RectF rect = new RectF(200, 400, 400, 450);
FreeText callout = new FreeText(page.addAnnot(Annot.e_FreeText, rect));

callout.setIntent("FreeTextCallout");
callout.setContent("请注意此处的格式问题。");

PointFArray points = new PointFArray();
points.add(new PointF(100, 350));
points.add(new PointF(150, 400));
points.add(new PointF(200, 420));
callout.setCalloutLinePoints(points);

callout.setCalloutLineEndingStyle(Markup.e_EndingStyleOpenArrow);

callout.resetAppearanceStream();

Caret Annotations

Caret (Annot.e_Caret) marks text insertion or replacement positions, typically shown as ^.

java
import com.foxit.sdk.common.fxcrt.RectF;
import com.foxit.sdk.pdf.PDFPage;
import com.foxit.sdk.pdf.annots.Annot;

PDFPage page = doc.getPage(0);

RectF rect = new RectF(150, 700, 160, 720);
Annot caret = page.addAnnot(Annot.e_Caret, rect);

caret.setContent("在此处插入新段落。");
caret.setBorderColor(0xff0000ff);
caret.resetAppearanceStream();