private void processHtml(IElementHandler elementsHandler)
{
var cssResolver = new StyleAttrCSSResolver();
if (CssFilesPath != null && CssFilesPath.Any())
{
foreach (var cssFile in CssFilesPath)
{
cssResolver.AddCss(XmlWorkerUtils.GetCssFile(cssFile));
}
}
if (!string.IsNullOrEmpty(InlineCss))
{
cssResolver.AddCss(InlineCss, "utf-8", true);
}
var htmlContext = new HtmlPipelineContext(new CssAppliersImpl(new UnicodeFontProvider(DefaultFont)));
if (!string.IsNullOrEmpty(ImagesPath))
{
htmlContext.SetImageProvider(new ImageProvider { ImagesPath = ImagesPath });
}
htmlContext.CharSet(Encoding.UTF8);
var tagsProcessorFactory = (DefaultTagProcessorFactory)Tags.GetHtmlTagProcessorFactory();
if (PdfElement != null)
{
tagsProcessorFactory.AddProcessor("totalpagesnumber", new TotalPagesNumberXmlWorkerProcessor(PdfElement));
}
htmlContext.SetAcceptUnknown(true).AutoBookmark(true).SetTagFactory(tagsProcessorFactory);
var pipeline = new CssResolverPipeline(cssResolver,
new HtmlPipeline(htmlContext, new ElementHandlerPipeline(elementsHandler, null)));
var worker = new XMLWorker(pipeline, parseHtml: true);
var parser = new XMLParser();
parser.AddListener(worker);
parser.Parse(new StringReader(Html));
}