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

时间:2014-04-11 06:48:51

标签: java html css pdf itext

我可以从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;
        }
    }

1 个答案:

答案 0 :(得分:1)

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

您可以通过表格

的样式属性提供内联样式

单独使用HTML,CSS文件并将它们发送到HelperClass

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

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