我正在使用iTextSharp动态生成PDF。我在文本模式中使用ColumnText
类,使用ColumnText.SetColumns()
方法使用以下代码定义列边界:
myColumnText.SetColumns(leftCoords, rightCoords)
myColumnText.AddText(New Chunk("Lorem ipsum..."))
myColumnText.AddText(Chunk.NEWLINE))
myColumnText.AddText(Chunk.NEWLINE))
myColumnText.AddText(New Chunk("Lorem ipsum..."))
myColumnText.AddText(Chunk.NEWLINE))
myColumnText.AddText(Chunk.NEWLINE))
如您所见,我发出一个文本块然后两个Chunk.NEWLINE
来添加段落之间的空格。
然后我使用ColumnText.Go
发出内容,根据需要创建新页面,如下所示:
While ColumnText.HasMoreText(myColumnText.Go())
myDocument.NewPage()
myColumnText.SetColumns(leftCoords, rightCoords)
End While
我遇到的问题是,根据ColumnText
对象中的内容,分页可能会出现在一大块文本的末尾但在Chunk.NEWLINE
之前,这意味着下一页的内容以两个Chunk.NEWLINE
开头,而不是页面顶部。
如果它们是新页面上发出的第一个东西,有没有办法以某种方式抑制Chunk.NEWLINE
?我的想法是,如果我能够以某种方式看到即将由ColumnText.Go
发出的文本,我可以看到我是否即将发出Chunk.NEWLINE
并将其从内容流中移除或者某事......
由于