10

我正在使用iTextsharp- 一个 java pdf lib - 动态生成 pdf。现在据我了解,测量值以点为单位。我知道在哪里放置什么以厘米为单位。所以我需要转换:points <-> cm

4

1 回答 1

18

iText(Sharp) 有一个Utilities类(包com.itextpdf.text/命名空间iTextSharp.text),其中包含几种静态转换方法,特别是:

// iText
public static final float millimetersToPoints(final float value);
public static final float millimetersToInches(final float value);
public static final float pointsToMillimeters(final float value);
public static final float pointsToInches(final float value);
public static final float inchesToMillimeters(final float value);
public static final float inchesToPoints(final float value);

// iTextSharp
public static float MillimetersToPoints(float value);
public static float MillimetersToInches(float value);
public static float PointsToMillimeters(float value);
public static float PointsToInches(float value);
public static float InchesToMillimeters(float value);
public static float InchesToPoints(float value);

您以点为单位指定测量值的假设仅部分正确,但在您的用例中动态生成 pdf就足够了。

不过,一般来说,测量是在用户空间单位中指定的,并且默认用户空间单位(即在任何转换到位之前)可以基于每页配置为任何浮点倍数(受实现特定限制) 1/72 英寸:

UserUnit number (可选;PDF 1.6)一个正数,应给出默认用户空间单位的大小,以 1⁄72 英寸的倍数表示。支持值的范围应取决于实现。

默认值:1.0(用户空间单位为 1⁄72 英寸)。

(表 30,第 7.7.3.3 节,ISO 32000-1)

由于该默认设置,如果没有选择其他选项,您的假设仍然成立。

于 2013-01-30T07:33:21.193 回答