【问题标题】:Hellosign conversion old system cordinatesHellosign 转换旧系统坐标
【发布时间】:2021-09-07 13:21:24
【问题描述】:

我想利用 Hellosign 创建的可以通过 get / template /:id api 下载的字段,在此处与文档组装一个 pdf,但我在 API 的返回中看到他们使用旧的 80 DPI 系统,我只有 o X、Y、宽度、高度,我想将其转换为 72 dpi 格式,例如如何进行转换以将其注入 PDBox?

GET https://[api key]:@api.hellosign.com/v3/template/[:template_id] "form_fields": [ { “api_id”:“b65e03_10”, “名称”:“部门A”, “类型”:“复选框”, “x”:117, “y”:19, “宽度”:15, “身高”:15, “必需”:错误, “组”:“组 1” }, { “api_id”:“b65e03_11”, “名称”:“部门B”, “类型”:“复选框”, “x”:118, “y”:41, “宽度”:15, “身高”:15, “必需”:错误, “组”:“组 1” }, { "api_id": "0ec7a7_1", “名称”:“供应商名称”, “类型”:“文本”, “x”:160, “y”:141, “宽度”:80, “身高”:30, “必需”:是的, “组”:空 }, { "api_id": "0ec7a7_2", "name": "VendorTitle", “类型”:“文本”, “x”:160, “y”:181, “宽度”:80, “身高”:30, “必需”:是的, “组”:空 }, { "api_id": "0ec7a7_3", "name": "经理姓名", “类型”:“文本”, “x”:160, “y”:221, “宽度”:80, “身高”:30, “必需”:是的, “组”:空 }, { "api_id": "0ec7a7_4", "name": "ManagerTitle", “类型”:“文本”, “x”:160, “y”:251, “宽度”:80, “身高”:30, “必需”:是的, “组”:空 }, { "api_id": "0ec7a7_5", "name": "签名日期", “类型”:“日期签名”, “x”:523, “y”:28, “宽度”:105, “身高”:16, “必需”:是的, “组”:空 } ]

我想在文档中的 PDBox 中注入字段。

【问题讨论】:

  • 请提供足够的代码,以便其他人更好地理解或重现问题。
  • GET https://[api key]:@api.hellosign.com/v3/template/[:template_id]

标签: hellosign-api


【解决方案1】:

我相信这也在支持票上进行了讨论,但我也会在此处发布答案,以防其他人想知道这一点。以下是我们的团队提出的计算,以便能够尽可能接近转换坐标。以下内容可能因文件大小而异,但我基于美国标准横向信函文档,其尺寸如下:8.5 x 11,即 612 x 792 DPI。

对于 x 坐标:

这些应该乘以 0.9(0.9 是除以 72/80 时的结果)- 100(因为 x 的旧坐标将从 100 开始)。

示例: 让我们尝试一个带有“x:”450 的示例。

(450 - 100) * 0.9 = 315。所以新系统中的x坐标应该是315

对于 y 坐标: 这些也应该乘以 0.9(0.9 是除以 72/80 时的结果),然后减去页面大小,具体取决于这些字段所在的页面。对于美国标准字母,页面大小为 792。例如,如果字段在第三页上,那么您将进行相同的计算 - 页面大小对应于您要删除的页数。

示例:

让我们尝试一个带有“y”的示例:1734

在这种情况下我们首先需要确认的是这个字段在哪个页面,因为我们在旧系统上没有页面参数。为了知道这一点,我们必须除以页面大小的y坐标.所以在这个例子中应该是 1734/792,结果是 2.1893939394。这样我们就知道该字段应该在第二页上。

之后,我们可以查看新坐标:

1734 * 0.9 = 1,560.6(我们可以取整为 1561)

1561 - 792(因为我们需要减去整个页面)= 769

如果该字段在第一页,在这种情况下,只需将 y 的值乘以 0.9。

在这种情况下: 218 * 0.9 - 196.1(196 的四舍五入)

添加页面参数

使用新坐标,应指定页面参数。您可以通过除以 y 坐标/页面大小来检查每个字段的页面。

减去签名者索引 在 Get 模板响应中,签名者索引将从 1 开始。要添加 form_fields_per_document,我们希望签名者索引从 0 开始,因此只需从响应中的所有签名者中减去 1。

旧系统示例: “签名者”:“1”, 新系统示例: "签名者": "0",

以上内容也取决于文件大小。 Form_fields_per_document 坐标系设计用于美国信纸大小的文档,以下转换字段的公式并非在所有情况下都有效 - 但是,如果您尝试将字段放在非标准文件上,它可能会作为起点有用记录并愿意尝试。我们在下面的文章中有关于另一种文档大小的说明https://faq.hellosign.com/hc/en-us/articles/217115577-How-to-use-the-Form-Fields-Per-Document-parameter

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多