2

私は現在、iTextSharp XMLWorker クラスを使用して HTML から PDF への変換を実証する POC に取り組んでいます。

  1. CSS ファイルは link タグを使用して HTML ファイルにリンクされます。
  2. 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);     
}

私が見逃したことと、この問題に対処するために何ができるかについて、あなたの意見/観察を親切に共有してください.

4

1 に答える 1