【问题标题】:ITextSharp XMLWorkerHelper Not WorkingITextSharp XMLWorkerHelper 不工作
【发布时间】:2015-08-01 18:51:19
【问题描述】:

我正在尝试将 HTML 页面转换为 PDF。我正在尝试使用 XMLWorker。我正在关注我在网上看到的各种示例。但是,出于某种原因,XMLWorkerHelper 对象似乎认为我的 PDFWriter 对象实际上是一个 IElementHandler 对象。因此,它不会编译。我不知道出了什么问题。有没有人经历过这个?如何让 XMLWorkerHelper 相信我的 PDFWriter 实际上是 PDFWriter?这是我的代码:

Imports System.IO
Imports iTextSharp.text
Imports iTextSharp.text.pdf
Imports iTextSharp.tool.xml


    Dim bytes As Byte()

    Using ms = New MemoryStream
        Using doc = New Document
            Using writer = PdfWriter.GetInstance(doc, ms)

                doc.Open()

                Using msCSS As New MemoryStream(System.Text.Encoding.UTF8.GetBytes(CSSstr))
                    Using msHTML As New MemoryStream(System.Text.Encoding.UTF8.GetBytes(HTMLstr))

                       'This Doesn't Work...
                       iTextSharp.tool.xml.XMLWorkerHelper.GetInstance().ParseXHtml(writer, doc, msHTML, msCSS)

                    End Using
                End Using

                doc.Close()

            End Using
        End Using

        bytes = ms.ToArray

    End Using

【问题讨论】:

  • 您使用的是哪个版本的 iTextSharp? ParseXHtml() 方法多年来已经改变了几次。 有一个ParseXHtml() 方法需要IElementHandler,但它需要不同数量的参数。乍一看,您使用的方法确实存在并且确实需要 PdfWriter,所以我猜您使用的是旧版本的 XML Worker 和 iTextSharp。
  • 我不确定我使用的是哪个版本的 ITextSharp。我正在使用 xmlWorker 版本 5.5.5。我将尝试使用最新版本的 itextsharp,看看会发生什么。
  • 版本号需要相同。如果您使用的是 XML Worker 5.5.5,那么您的 iTextSharp 版本也需要为 5.5.5。也许这导致了问题......
  • 就是这样!谢谢!这几天我一直在为此苦苦挣扎。

标签: pdf itextsharp xmlworker


【解决方案1】:

多亏了 Bruno,我才能让它工作起来。正如布鲁诺所指出的,iTextSharp 和 XMLWorker 的版本号需要相同。如果 iTextSharp,我显然使用的是旧版本。我下载了最新版本,问题就消失了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-30
    • 2014-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多