iTextSharp A4 大小四舍五入

iTextSharp A4 size rounding

按照ISO标准,A4为210x297mm,约595.2756x841.8898点。有什么原因在 iTextSharp 中,点值是四舍五入的,即。 595x842,即使它们是浮动的?

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

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

如您所见,这与四舍五入无关。

编辑:

有关问题的确切解释,请参阅 Bruno 的回答。引用他的评论:

The key is that user units correspond with points, but aren't defined as being equal to points

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

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

这确实是一个混乱的原因。我目前正在为下周在圣何塞召开的 ISO 会议做准备。我们正在研究 ISO-32000-2 (PDF 2.0),尽管 ISO-32000-1 已经处于良好状态,但我们仍然发现一些实例,它说的是点而不是用户单位,我们将替换 point by user unit in ISO-32000-2..

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