【发布时间】: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