itextsharp将点数转换为cm

Min*_*a N 9 c# itextsharp

我正在使用iTextsharp- 一个java pdf lib - 动态生成pdfs.据我所知,测量结果以点数表示.我知道在哪里放置厘米的地方.所以我需要转换:点< - > cm

mkl*_*mkl 17

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);
Run Code Online (Sandbox Code Playgroud)

您的测量以点为单位的假设只是部分正确,但在您的用例中动态生成pdf足够好.

但是,一般情况下,测量是在用户空间单元中指定的,并且默认用户空间单元(即在任何转换到位之前)可以在每页的基础上配置为任何浮动倍数(取决于实现特定限制) 1/72英寸:

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

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

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

由于该默认值,如果没有其他选择,则您的假设成立.

  • `pointsValue = iTextSharp.text.Utilities.MillimetersToPoints(mmValue)`应该可以解决问题. (5认同)
  • iText 7 有类似的东西吗? (2认同)