插入一些文本后,iTextSharp 上缺少结束文本错误

Error end text missing on iTextSharp after some text inserts

我正在尝试使用 iTextSharp 创建 pdf,但在 pdf 上插入一些文本后,pdf 损坏并在 Pdf 上显示这个令人讨厌的弹出窗口 Reader(请参阅 link)

Img Error

我还使用了另一个程序来检查错误问题是什么,似乎 iText 库在插入新文本时停止添加 begin/end 块

Error description

我使用的是最新版本的 iTextSharp (v.5.5.8.0) 这是我使用的简单代码

Sub Main()
    Dim objPageSize As iTextSharp.text.Rectangle
    Dim objDocument As Document
    Dim objWriter As pdf.PdfWriter

    objPageSize = New Rectangle(842, 595)
    objDocument = New Document(objPageSize, 50, 50, 50, 50)
    objWriter = PdfWriter.GetInstance(objDocument, New System.IO.FileStream("test.pdf", System.IO.FileMode.Create, System.IO.FileAccess.Write))
    Call objDocument.Open()
    objWriter.Open()
    objWriter.DirectContent.BeginText()

    For i As Integer = 0 To 85
        Dim ct As ColumnText = New ColumnText(objWriter.DirectContent)
        ct.SetSimpleColumn(1, i * 5, 100, 100, 0, Element.ALIGN_LEFT)
        Dim phrase As Phrase = New Phrase("hello", FontFactory.GetFont(BaseFont.TIMES_ROMAN, BaseFont.CP1250, False, 4))
        ct.SetText(phrase)
        ct.Go()
    Next


    objWriter.DirectContent.EndText()
    objDocument.Close()
    objWriter.Close()


End Sub

它看起来像是库中的错误。

如有任何帮助,我们将不胜感激

谢谢!

好的,我自己找到了答案。

我将 post 放在这里,因为其他人可能会有所帮助。

你不需要打电话 objWriter.DirectContent.BeginText() 和 objWriter.DirectContent.EndText()

ColumnText class 为您完成