Skip to content

图章注释

图章注释(Stamp)用于在 PDF 页面上添加类似印章的标记,可使用 PDF 规范定义的标准图章,也可使用自定义的位图或图片作为图章内容。

标准图章

PDF 规范定义了一组标准图章图标,通过 setIconName() 设置对应名称即可使用:

图标名称说明
"Approved"已批准
"AsIs"按原样
"Confidential"机密
"Departmental"部门内部
"Draft"草稿
"Experimental"试验性
"Expired"已过期
"Final"最终版
"ForComment"供评审
"ForPublicRelease"公开发布
"NotApproved"未批准
"NotForPublicRelease"非公开
"Sold"已售
"TopSecret"绝密

示例:添加标准图章

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.Stamp;

PDFPage page = doc.getPage(0);

RectF rect = new RectF(100, 600, 280, 660);
Stamp stamp = new Stamp(page.addAnnot(Annot.e_Stamp, rect));

stamp.setIconName("Approved");
stamp.setBorderColor(0xff009900);
stamp.setContent("已批准");
stamp.resetAppearanceStream();

自定义位图图章

使用 setBitmap() 方法可将任意 android.graphics.Bitmap 对象设置为图章内容,适用于需要自定义图片作为印章的场景。

java
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
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.Stamp;

PDFPage page = doc.getPage(0);

RectF rect = new RectF(100, 400, 300, 500);
Stamp stamp = new Stamp(page.addAnnot(Annot.e_Stamp, rect));

// 从文件加载位图
Bitmap bitmap = BitmapFactory.decodeFile("/sdcard/my_stamp.png");
stamp.setBitmap(bitmap);
stamp.resetAppearanceStream();

使用 Image 对象设置图章

setImage() 方法支持通过 SDK 的 Image 对象设置图章,可指定帧索引和压缩方式:

java
import com.foxit.sdk.common.Image;
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.Stamp;

PDFPage page = doc.getPage(0);

RectF rect = new RectF(100, 400, 300, 500);
Stamp stamp = new Stamp(page.addAnnot(Annot.e_Stamp, rect));

Image image = new Image("/sdcard/stamp_image.jpg");
stamp.setImage(image, 0, 0);  // 帧索引 0,默认压缩
stamp.resetAppearanceStream();

图章旋转

图章注释支持角度旋转:

java
// 获取当前旋转角度
int rotation = stamp.getRotation();

// 设置绝对旋转角度(单位:度)
stamp.setRotation(45);

// 在当前角度基础上增量旋转
stamp.rotate(90);

stamp.resetAppearanceStream();

核心方法汇总

方法说明
getIconName() / setIconName(String)获取/设置标准图章图标名称
setBitmap(Bitmap)使用 Android Bitmap 设置自定义图章
setImage(Image, int, int)使用 SDK Image 对象设置图章(支持帧索引和压缩参数)
getRotation() / setRotation(int)获取/设置旋转角度
rotate(int)增量旋转(在当前角度上叠加)