私は現在、iTextSharp XMLWorker クラスを使用して HTML から PDF への変換を実証する POC に取り組んでいます。
- CSS ファイルは link タグを使用して 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);
}
私が見逃したことと、この問題に対処するために何ができるかについて、あなたの意見/観察を親切に共有してください.