首选,要获取 PdfStamper 对象:
PdfStamper ps = new PdfStamper(reader, bos);
然后,要获取到需要创建签名域的矩形区域:
// 创建数组签名域
int x = 300, y = 400, width = 200, height = 200; // 坐标系远点位于页面左下角,左下角到右下角为 x 轴,左下角到左上角为 y 轴
Rectangle areaSignatureRect = new Rectangle(// 签名域区域,由两个对角点构成的矩形区域
x, // 点1 x坐标
y, // 点1 y坐标
x + width, // 点2 x坐标
y + height // 点2 y坐标
);
int pageNo = 1; // PDF 文件的页码从 1 开始,而不是 0
PdfFormField pdfFormField = PdfFormField.createSignature(ps.getWriter());
pdfFormField.setFieldName("AREA_SIGNATURE"); // 签名域标识
pdfFormField.setPage(pageNo);
pdfFormField.setWidget(areaSignatureRect, PdfAnnotation.HIGHLIGHT_OUTLINE); // 高亮显示
中间,可以通过 PdfAppearance 对象对这块区域的外观做下调整:
// 设置区域宽高和边框厚度,以及边框颜色,填充颜色