我目前正致力于POC,以展示使用iTextSharp XMLWorker类将HTML转换为PDF。
我使用以下函数执行操作。生成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);
}
请分享您对我错过的内容以及可以解决此问题的意见。
答案 0 :(得分:1)
HTML-to-PDF转换器在查找资产的相对路径方面非常糟糕。尝试使用绝对URL链接样式表,例如:
<link href='http://localhost/css/style.css'>