我目前正在开发一个 POC,以演示使用 iTextSharp XMLWorker 类将 HTML 转换为 PDF。
- CSS 文件使用链接标签链接到 HTML 文件。
- CSS 文件的路径是文件服务器路径。它与 HTML 文件的目录相同。
我使用下面的函数来执行操作。生成 PDF 文件,但未应用 CSS 文件。
public void Html2Pdf(FileStream inputHtml, Document doc, PdfWriter pdfWriter)
{
var cssFiles = new CssFilesImpl();
cssFiles.Add(XMLWorkerHelper.GetCSS(new FileStream(@"C:\Test_HTML2PDF\Test.css",FileMode.Open)));
var cssResolver = new StyleAttrCSSResolver(cssFiles);
var htmlContext = new HtmlPipelineContext(new CssAppliersImpl(new XMLWorkerFontProvider()));
htmlContext.SetAcceptUnknown(true).AutoBookmark(true).SetTagFactory(Tags.GetHtmlTagProcessorFactory());
htmlContext.SetPageSize(new Rectangle(doc.Left, doc.Bottom, doc.Right, doc.Top));
// Pipelines
var pdf = new PdfWriterPipeline(doc, pdfWriter);
var html = new HtmlPipeline(htmlContext, pdf);
var css = new CssResolverPipeline(cssResolver, html);
var worker = new XMLWorker(css, true);
var parser = new XMLParser(worker, Encoding.UTF8);
parser.Parse(inputHtml, Encoding.UTF8);
}
请分享您对我错过的内容以及可以解决此问题的内容的意见/意见。