在 iText 7 ConvertToPdf 中使用外部 CSS 文件

Using External CSS Files with iText 7 ConvertToPdf

大家好,感谢您的提前帮助。我是 iText 7 的新手,正在学习将网页转换为 pdf。代码如下所示:

            string url = "http://mypage.com";

        WebClient myWebClient = new WebClient();
        Stream myStream = myWebClient.OpenRead(url);

        string dest = @"E:\HTMLToPDF.pdf";
        HtmlConverter.ConvertToPdf(myStream, new System.IO.FileStream(dest, System.IO.FileMode.Create));

该页面使用了不在当前代码下呈现的外部样式表,但是,当我 运行 替换为检索到的页面以将完全限定路径添加到样式表(即 http://mypage.com/styles/style.css 而不是 styles/style.css) 页面生成正确。这是我需要合并到代码中以生成 pdf 的东西,还是 iText 中有另一种方法来处理这个问题。任何见解将不胜感激。

您需要添加一个 ConverterProperties 对象来告诉 pdfHTML (使用 setBaseURI)在哪里寻找外部资源。

  // writer
  PdfWriter writer = new PdfWriter(getOutputFile());
  PdfDocument pdfDocument = new PdfDocument(writer);
  pdfDocument.setDefaultPageSize(new PageSize(1000f, 1450f));

 // convert
 ConverterProperties converterProperties = new ConverterProperties();
 converterProperties.setBaseUri("base_uri_here");

 HtmlConverter.convertToPdf(new FileInputStream(getInputFiles()[0]), pdfDocument, converterProperties);