iText7 MoveText 与 SetFixedPosition 不同的结果

iText7 MoveText vs SetFixedPosition different results

为什么我使用 MoveTextSetFixedPosition 时得到不同的结果?我使用相同的 xy 值,但它们打印在不同位置的页面上。如果我使用 canvasPage.BeginText 可以格式化为使用宽度和自动换行

canvasPage.BeginText()    
.SetFontAndSize(PdfFontFactory.CreateFont(StandardFonts.HELVETICA_BOLD), 21)
.MoveText(X,Y)


Paragraph p = new Paragraph()
.Add(_disclaimer)
.SetFixedPosition(X,Y, canvasPage.W)
.SetFont(PdfFontFactory.CreateFont(StandardFonts.HELVETICA))
.SetFontColor(ColorConstants.BLACK)
.SetFontSize(12)
.SetTextAlignment(TextAlignment.LEFT);

使用 low-level 操作手动将文本添加到 canvas 与使用 high-level 布局 Paragraph 对象时的位置将不同因为 Paragraph 负责 multi-line 布局并添加必要的边距/间距以使文本看起来不错并且不与其他内容重叠。位置仍然不同,只是略有不同。

您不能将 low-level beginText 操作与 high-level 布局要求(跨行换行等)相结合 - 这是布局段落的责任。