繁体   English   中英

itext7定位异常

[英]Itext7 positioning exception

对于电子签名,原始坐标应从左下角到右上角。 但是有些页面会变成左上角和右上角。 我该怎么办

您假设对于注释,特别是签名表单字段小部件注释,

原始坐标应来自左下角

并在评论中提供一个例子

我使用以下代码。 原点坐标为左下角

Rectangle rect = new Rectangle(0, 0, 200, 100); appearance.setPageRect(rect);

你的假设是错误的,坐标系原点可以在可见区域内或外的任何地方 它确实经常在可见页面区域的左下方,但这只是因为这通常是 PDF 生成软件处理的最简单的变体。

实际上可见页面区域的坐标范围由相应页面的CropBox条目给出:

CropBox矩形(可选;可继承)一个矩形,以默认用户空间单位表示,应定义默认用户空间的可见区域。 当页面被显示或打印时,其内容将被剪切(裁剪)到这个矩形。

(ISO 32000-1 表 30 – 页面对象中的条目)

因此,如果您有相对于可见区域左下角的坐标来放置注释,则必须将这些相对坐标添加到裁剪框左下角的坐标上。

因此,使用 iText 7,您可以将PdfSignatureAppearance appearance定位在PdfPage page相对于其左下角,如下所示:

Rectangle crop = page.getCropBox();
Rectangle rect = new Rectangle(crop.getLeft() + 0, crop.getBottom() + 0, 200, 100);
appearance.setPageRect(rect);

getCropBox已经考虑到CropBox通过检查页面树中的祖先节点是可继承的,并且默认为页面的MediaBox是可选的。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM