iTextSharp A4尺寸四舍五入

时间:2015-04-12 17:17:44

标签: c# pdf-generation itextsharp rounding

根据ISO标准,A4为210x297 mm,或约595.2756x841.8898点。有没有理由在iTextSharp中,点值是四舍五入的,即。 595x842,即使它们是花车?

enter image description here

2 个答案:

答案 0 :(得分:6)

我是负责PDF标准的ISO委员会成员。该标准定义PDF中的所有测量均以用户单位表示( NOT 点)。

默认情况下,一个用户单位大致对应有一个印刷点,但ISO委员会意识到它们并不完全相同。

这确实是引起混淆的原因。我目前正准备下周开始在圣何塞举行的ISO会议。我们正在研究ISO-32000-2(PDF 2.0),尽管ISO-32000-1已经处于良好状态,我们仍然发现一些实例,它表示点而不是用户单元,我们将替换 by ISO> 32000-2 ..

中的用户单元

底线:人们普遍认为PDF格式的A4页面由842个用户单位测量595(可能因为整数值优于实际值),这就是它在iText中以这种方式实现的原因。

答案 1 :(得分:4)

它们不是四舍五入的,而是在运行时获得的。 PageSize.A4.Right和PageSize.A4.Top是为A4类型(iTextSharp中的内部类)定义的矩形(宽度,高度)的两个值。来自PageSize.cs

  /** This is the a4 format */
  public static readonly Rectangle A4 = new RectangleReadOnly(595,842);

如您所见,它与舍入无关。

编辑:

请参阅Bruno答案以获得该问题的确切解释。引用他的评论:

  

关键是用户单位与点对应,但未定义为等于   点