我提取表单域的字体大小以获取有关其大小的信息(使用 iText)。这适用于大多数文档,但是对于某些文档,我的字体大小为 1,因为在外观上字体大小为 1。但是,如果我在几个不同的查看器中打开 PDF,则此文本字段的大小始终为 8。我想表单域应该根据其外观呈现?那么为什么 PDF 查看器使用默认外观而不是外观流中定义的字体大小呢?
更新:正如 MKL 提到的,我确实忘记考虑文本矩阵。我确实为字体实现了自己的 RenderListener。有谁知道如何应用缩放?
public class PdfStreamFontExtractor implements RenderListener{
@Override
public void usedFont(DocumentFont font, float fontSize) {
this.font=font;
this.fontSize=fontSize;
}
@Override
public void renderText(TextRenderInfo renderInfo) {
//get scaling factor from textToUserSpaceTransformMatrix?
}
...
}