【问题标题】:Get height of text in PDF AcroField获取 PDF AcroField 中的文本高度
【发布时间】:2010-11-10 22:38:09
【问题描述】:

有什么方法可以计算 AcroField 中文字的高度吗?

换句话说,我有一个带有正文部分的模板 PDF,我想将长文本粘贴到该模板中,并且我想获取文本的高度。如果溢出,为其余文本插入一个新页面。

【问题讨论】:

    标签: c# pdf itextsharp


    【解决方案1】:

    这将给出高度和宽度:

    Vector curBaseline = renderInfo.GetBaseline().GetStartPoint();
    Vector topRight = renderInfo.GetAscentLine().GetEndPoint();
    iTextSharp.text.Rectangle rect = new iTextSharp.text.Rectangle(
        curBaseline[Vector.I1], curBaseline[Vector.I2], 
        topRight[Vector.I1], topRight[Vector.I2]
    );
    Single curFontSize = rect.Height;
    

    【讨论】:

      【解决方案2】:

      只需将您的字段设置为零字体大小。这将自动调整字体大小,以便给定的文本适合您的字段......在一定范围内。我认为它不会缩水到 6 点以下。

      另一种选择是使用ColumnText 并调用myColText.go(true)。这将“模拟”布局,让您知道什么在哪里,而无需实际绘制任何东西到 PDF。只需创建一个与您的字段具有相同尺寸、字体和字体大小的 columnText,您的结果应该是相同的。

      其实我相信iText的文本字段渲染代码内部使用了ColumnText。是的,请查看TextField.getAppearance() 的来源。

      请注意,您的字段的边界框与文本布局的框不匹配...您必须考虑钻孔样式和厚度。这就是为什么我建议您查看源代码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-03
        • 2015-11-15
        • 2012-08-21
        • 2012-03-26
        • 1970-01-01
        相关资源
        最近更新 更多