图章注释
图章注释(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) | 增量旋转(在当前角度上叠加) |