Pdf ITextSharp XMLWorkerHelper不工作

Pdf ITextSharp XMLWorkerHelper不工作,pdf,itextsharp,xmlworker,Pdf,Itextsharp,Xmlworker,我正在尝试将HTML页面转换为PDF。我正试图利用XMLWorker。我在网上看到了各种各样的例子。然而,出于某种原因,XMLWorkerHelper对象似乎认为我的PDFWriter对象实际上是一个IElementHandler对象。因此,它不会编译。我不知道怎么了。有人经历过吗?如何让XMLWorkerHelper相信我的PDFWriter实际上是一个PDFWriter?这是我的密码: Imports System.IO Imports iTextSharp.text Imports iTe

我正在尝试将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

多亏了布鲁诺,我才使它工作起来。正如Bruno指出的,iTextSharp和XMLWorker的版本号必须相同。很明显,我使用的是一个旧版本。我下载了最新版本,问题就解决了

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