指向英寸itext7

时间:2016-10-21 20:22:00

标签: itext itext7

这是iText5函数的一部分,首先获取页面高度和宽度,然后将其与输入参数进行比较。

Rectangle rectangle = page.getPageSize();
float pageHeight    = com.itextpdf.text.Utilities.pointsToInches(rectangle.getHeight());
float pageWidth     = com.itextpdf.text.Utilities.pointsToInches(rectangle.getWidth());

我通过iText7 API阅读,找不到pointsToInches或类似的功能。看起来很简单,我不确定我是否错过了它或它在iText7中丢失了。任何人都知道该功能或如何从点转换为英寸。 任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:3)

我知道这已经过时了但除了@ mkl对该问题的评论之外,它没有其他答案。默认的UserUnit是每英寸72,但可以在Page Dictionary&User / UNUnit条目中更改。

看起来他们确实抛弃了inchesToPoints方法,但是直接实现是微不足道的:float points = inches * 72f;。使用页面的UserUnit值的实现是addressed by Bruno in iText 5 here。由于PdfDictionary在两者中具有相似的语法,因此将其改编为iText 7是微不足道的。

public static float inchesToPoints(float inches, PdfPage page) {
    PdfNumber userUnit = page.getPdfObject().getAsNumber(PdfName.USERUNIT);
    float userUnitValue = userUnits == null ? 72f : userUnits.floatValue();
    return inches * userUnitValue;
}

修改:它确实说inches / userUnitValue,但它应该是inches * userUnitValue