结合使用外部CSS文件和iText 7 ConvertToPdf

时间:2018-06-19 21:58:57

标签: css itext7

大家好,感谢您的提前帮助。我是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而不是样式/ style.css)页面正确生成。这是我需要合并到代码中以生成pdf的东西,还是iText中存在另一种方法来处理此问题?任何见识将不胜感激。

1 个答案:

答案 0 :(得分:2)

您需要添加一个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);