使用 iTextSharp CSSResolver 的命名空间 类

Namespace for using iTextSharp CSSResolver classes

我正在使用 iTextSharp CSSResolver 类 在 vb.net

中使用外部 css

请告诉我使用 XMLWorkerFontProviderCssFilesImplStyleAttrCSSResolver 类.

的命名空间

下面是我的代码:

    Dim fontProvider As XMLWorkerFontProvider = New XMLWorkerFontProvider()

    Dim cssFiles As CssFilesImpl = New CssFilesImpl(fontProvider)

    cssFiles.Add(XMLWorkerHelper.GetInstance().GetDefaultCSS())

    Dim cssRevolver As StyleAttrCSSResolver = New StyleAttrCSSResolver()

    Dim htmlContext As HtmlPipelineContext = New HtmlPipelineContext()

    htmlContext.SetTagFactory(Tags.GetHtmlTagProcessorFactory())

    htmlContext.SetImageProvider(New MyImageProvider(imagePath))

    Dim pipeline As IPipeline = New CssResolverPipeline(cssRevolver, New HtmlPipeline(htmlContext, New PdfWriterPipeline(Document, writer)))

    Dim worker As XMLWorker = New XMLWorker(pipeline, True)

    Dim p As XMLParser = New XMLParser(worker)

    p.Parse(xmlString)

谢谢 拉梅什

Dim sw As New StringWriter()

将硬件调暗为新的 HtmlTextWriter(sw)

strMonthlyDataHtml = LoadReport("PDF")

ltrPDFReport.Text = strMonthlyDataHtml

ltrPDFReport.RenderControl(硬件)

Dim sr As New StringReader(sw.ToString())

将 pdfDoc 调暗为新文档(iTextSharp.text.PageSize.A4、10.0F、10.0F、100.0F、0.0F)

Dim memStream = New MemoryStream()

Dim writer = PdfWriter.GetInstance(pdfDoc, memStream)

writer.CloseStream = 假

pdfDoc.Open()

将 htmlContext 变暗为新的 HtmlPipelineContext(无)

htmlContext.SetTagFactory(Tags.GetHtmlTagProcessorFactory())

Dim cssResolver = XMLWorkerHelper.GetInstance().GetDefaultCssResolver(False)

cssResolver.AddCssFile(Server.MapPath("../Assets/css/Efficiency.css"), 真)

cssResolver.AddCssFile(Server.MapPath("/Assets/css/Efficiency.css"), 真)

Dim 管道 As IPipeline = New CssResolverPipeline(cssResolver, New
HtmlPipeline(htmlContext, New PdfWriterPipeline(pdfDoc, writer)))

Dim worker As XMLWorker = New XMLWorker(pipeline, True)

Dim p As New XMLParser(worker)

p.Parse(sr)

pdfDoc.Close()

看来你把两种不同的东西混在一起了。当我看到 iTextSharp.text.html.simpleparser 时,我假设您使用的是旧的 HTMLWorker,一个已经停产的 class。

当我查看您的代码时,我发现您正在使用 XML Worker,它需要一个单独的 DLL(itextsharp.xmlworker.dll). The classes you use are in iTextSharp.tool.xml, and have nothing to do with iTextSharp.text.html.simpleparser. You can check this, by downloading the ZIP file 并查看 itextsharp-src-xmlworker.zip 中的源代码。