【问题标题】:pdf /F font size size is not real size?pdf /F font size size 不是实际大小?
【发布时间】:2013-07-16 00:19:14
【问题描述】:

我正在向我的可见签名中添加文本。我的文字是:

BT
1 0 0 1 0 1 Tm
 /F1 5
Tf
(Hello World)Tj
ET

5 是字体大小。但这是如何计算的?

我刚刚检查了文本的宽度,但它不一样:

AffineTransform affinetransform = new AffineTransform();
FontRenderContext frc = new FontRenderContext(affinetransform,true,true);     
Font font = new Font("myFont", Font.PLAIN, 5);
int textwidth = (int)(font.getStringBounds(text, frc).getWidth());

在我的 PDrectangle 中,5 号太大了。有任何想法吗? 5是怎么计算出来的?

【问题讨论】:

    标签: pdf acrobat pdfbox adobe-reader


    【解决方案1】:

    您还应该为此值应用 Tm 文本矩阵转换。

    “一种字体定义了一种标准尺寸的字形。这个标准的排列使得紧密间隔的文本行的标称高度为 1 个单位。在默认的用户坐标系中,这意味着标准字形大小为 1 个单位用户空间,或 1 ⁄ 72 英寸。然后必须缩放标准大小的字体才能使用。缩放因子指定为 Tf 运算符的第二个操作数,从而在图形状态下设置文本字体大小参数。"

    【讨论】:

    • 你能举个例子吗?
    【解决方案2】:

    @stanlyF 已经引用了如何解释字体大小。特别注意它大约是标称高度的线条

    您似乎误解了它是宽度。正如my answer 到您的former question 中已经提到的,字符串的宽度取决于

    • 字体指标,尤其是所涉及字符的字符宽度,
    • 字体大小,
    • 当前字符间距值,
    • 当前字间距值,
    • 水平缩放,
    • 当前文本矩阵,并且
    • 当前的变换矩阵。

    详情请阅读specification

    【讨论】:

      猜你喜欢
      • 2013-07-25
      • 1970-01-01
      • 2012-05-20
      • 2023-03-30
      • 2016-02-10
      • 2015-07-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多