使用itext从html生成pdf时不会使用CSS样式

问题描述 投票:0回答:1

我可以从html字符串成功生成pdf,但问题是它没有采用css脚本。如何使用css样式生成pdf?请帮忙!我尝试过cssresolver als

我的代码在这里:

{String result = "failed";

try 
{
String html2 ="<html>"+.....+"</html>" ;
  long timemilli = System.currentTimeMillis();
            String filename = "EastAfriPack2014_Ticket_"+timemilli;
           String writePath = Global.PDF_SAVE_PATH + filename ; 
           System.out.println("----------writePath--------------"+ writePath);

            OutputStream file = new FileOutputStream(new File(writePath+".pdf"));
            Document document = new Document();
            PdfWriter writer = PdfWriter.getInstance(document, file);
            document.open();
            InputStream is = new ByteArrayInputStream(k.getBytes());

            CSSResolver cssResolver = XMLWorkerHelper.getInstance().getDefaultCssResolver(false);  
            cssResolver.addCss("table {color: red;  background-color: blue; } ", true);

            XMLWorkerHelper.getInstance().parseXHtml(writer, document, is);
            document.close();
            file.close();
            System.out.println("pdf created");
            result = filename;
            return filename;
        } catch (Exception e) {
            e.printStackTrace();
            return result;
        }
    }
java html css pdf itext
1个回答
1
投票

我不认为你的方法有效。之前我尝试过它,因为它是从HTML创建PDF的最简单方法,但却被同样的问题所困扰。

您可以通过表格的样式属性提供内联样式

要么

分别使用HTML,CSS文件并将它们发送到HelperClass

XMLWorkerHelper.getInstance().parseXHtml(writer, document, 
                    new FileInputStream("myhtmlFile.html"), 
                    new FileInputStream("myCSSFile.css"));

HTML部分也可以是您在代码中创建的inputStream。

© www.soinside.com 2019 - 2024. All rights reserved.