【发布时间】:2021-03-07 19:57:07
【问题描述】:
我试图弄清楚如何计算用于 PDF acro 字段的实际字体大小,只要其字体大小设置为 0(自动)。例如,“/ZaDb 0 Tf”。
目前,我正在使用 ActivePDF 工具包来解析 PDF,但我希望从该工具包转移到 iTextSharp LGPL 4.1.6 或 PdfSharp。我需要移植的最后一个功能是为自动调整大小的字段计算字体大小。 ActivePDF 可以方便地使用自动调整字段的计算大小填充 FieldInfo.FontSize 属性,但到目前为止,我还没有成功弄清楚 ActivePDF 工具包是如何为这些类型的字段执行计算的。
根据 PDF 规范,“大小为零表示字体应自动调整大小:它的大小 应作为注释矩形高度的函数来计算。”这是该语句的后半部分,我在几天的时间里一直在试图弄清楚。我尝试使用注释矩形的大小作为在规范中声明,使用与字段的外观状态相关联的边界框,以及我能想到的所有其他内容。有时我得到与 ActivePDF 相同的结果,有时我没有。
对此的任何指导将不胜感激!我试图让它适用于所有交互式字段类型(按钮、文本、选择、签名)。
【问题讨论】:
-
正如您自己发现的那样,这里的规范并不是特别清楚。因此,没有单一的正确方法来计算大小。许多库尝试在 Adobe Reader 中模拟计算,为此需要进行大量的试验和错误。
-
@mkl - 啊!很有意思!这让我非常生气,我可以发誓我在规格中遗漏了一些东西。既然是这样,现在就更有意义了!非常感谢您抽出宝贵时间回复!!你只是为我节省了无数小时的进一步挣扎!