这是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中丢失了。任何人都知道该功能或如何从点转换为英寸。 任何帮助表示赞赏。
答案 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
。