我正在使用 iTextSharp CSSResolver 类在 vb.net 中使用外部 css
请让我知道使用的命名空间XMLWorkerFontProvider
, CssFilesImpl
, StyleAttrCSSResolver
类。
下面是我的代码:
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()
Dim hw 作为新的 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)
昏暗的 memStream = 新的 MemoryStream()
Dim writer = PdfWriter.GetInstance(pdfDoc, memStream)
writer.CloseStream = False
pdfDoc.Open()
Dim htmlContext As New 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)
暗淡管道 As IPipeline = New CssResolverPipeline(cssResolver, New
HtmlPipeline(htmlContext, 新 PdfWriterPipeline(pdfDoc, writer)))
昏暗的工人作为 XMLWorker = New XMLWorker(pipeline, True)
Dim p As New XMLParser(worker)
p.Parse(sr)
pdfDoc.Close()