我正在为ColumnText编写一个小包装器来处理垂直对齐 - 即。在边界框内顶部/中间/底部对齐。
当我呼叫SetSimpleColumn
时,它需要边界框的位置。调用Go(True)
(true =测试模式)可以让我测试文本的高度。从那里,我想重新分配Y坐标,因此当我调用Go()
时,文本显示在所需的新位置。如果可能的话,它是如何完成的?
Ed:例子:
Imports iTextSharp.text
...
columnText = New pdf.ColumnText(pageContentByte)
columnText.SetSimpleColumn(New Phrase("some text"), x1, y1, x2, y2, leading)
columnText.Go(True) ' Test mode.'
y1 = y2 + (y1 - columnText.yLine) ' Bottom-align it.'
''
' HOWTO: Re-position Y-coordinate (y1) of columnText object?'
''
columnText.Go() ' Render at adjusted Y position.'
(将单引号添加到注释的末尾以使语法突出显示正常工作)
答案 0 :(得分:1)
SetSimpleColumn()
设置的变量受到保护,因此您无法直接访问它们。但是,您应该能够使用更新后的参数重复使用SetSimpleColumn()
方法。
columnText.SetSimpleColumn(New Phrase("some text"), x1, y1, x2, y2, leading)
columnText.Go(True) ''//Test mode.
y1 = y2 + (y1 - columnText.yLine) ''// Bottom-align it.
columnText.SetSimpleColumn(New Phrase("some text"), x1, y1, x2, y2, leading)
columnText.Go(False) ''// Render at adjusted Y position.