【问题标题】:Namespace for using iTextSharp CSSResolver classes使用 iTextSharp CSSResolver 类的命名空间
【发布时间】:2015-03-28 13:04:32
【问题描述】:

我正在使用 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(hw)

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 = False

pdfDoc.Open()

将 htmlContext 调暗为新的 HtmlPipelineContext(Nothing)

htmlContext.SetTagFactory(Tags.GetHtmlTagProcessorFactory())

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

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

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

Dim pipeline 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()

【问题讨论】:

    标签: asp.net vb.net itextsharp


    【解决方案1】:

    您似乎在混合两种不同的东西。当我看到iTextSharp.text.html.simpleparser 时,我假设您使用的是旧的HTMLWorker,这是一个已经停止使用的类。

    当我查看您的代码时,我发现您正在使用 XML Worker,它需要一个单独的 DLL (itextsharp.xmlworker.dll)。你使用的类在iTextSharp.tool.xml,与iTextSharp.text.html.simpleparser无关。您可以通过downloading the ZIP file 进行检查,并查看itextsharp-src-xmlworker.zip 中的源代码。

    【讨论】:

    • 我是否使用上述正确代码使 iTextSharp 应用外部 CSS 文件?
    • 不,你的代码看起来很奇怪。你在哪里找到它?你为什么要那样做?你的意图是什么?我无法评论你的代码,因为我不明白你的代码的目的。
    • 我正在尝试使用 iTextSharp 生成 PDF,但是当包含在 xslt 中时它没有应用外部 css 文件样式。所以我试图将 iText 的 cssResolver 与主要部分中编辑的一样
    • 我从这里获取代码dotnetdatastuff.blogspot.in/2013/10/…
    • 我发现链接中的代码与您共享的代码之间存在很多差异。我了解您共享的链接中的代码;我不明白你的代码。您在评论部分提出的问题也不清楚。您最初的问题得到了回答:您知道要使用哪个名称空间。如果您还有疑问,现在创建一个新问题。
    猜你喜欢
    • 2020-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-31
    • 1970-01-01
    • 2013-12-28
    相关资源
    最近更新 更多