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
| Method | Description |
|---|---|
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)
| Constant | Description |
|---|---|
Markup.e_StateMarked | Marked |
Markup.e_StateUnmarked | Unmarked |
Review model (Markup.e_StateModelReview)
| Constant | Description |
|---|---|
Markup.e_StateAccepted | Accepted |
Markup.e_StateRejected | Rejected |
Markup.e_StateCancelled | Cancelled |
Markup.e_StateCompleted | Completed |
Markup.e_StateDeferred | Deferred |
Markup.e_StateFuture | Future |
Markup.e_StateNone | None |
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:
| Subtype | Intent | Description |
|---|---|---|
| Free text | "" | Text in a rectangle |
| Typewriter | "FreeTextTypewriter" | Typewriter-style text |
| Callout | "FreeTextCallout" | Callout with leader line |
Core Methods
| Method | Description |
|---|---|
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();