我可以使用flying-saucer/iText生成PDF。但是,我無法弄清楚如何獲取包含在PDF渲染中的樣式表。Flying-saucer/iText PDF找不到css文件
我已經使用這個flying-saucer/iText PDF in servlet not finding css file作爲參考。
有參與,所以我將無法使用renderer.setDocument(doc, "http://example.com/something/page.html");
作爲解決
我已經實現類似於用什麼提問者一個東西多個CSS文件,但它返回一個Caused by: java.nio.file.InvalidPathException: Illegal char <:> at index 4: http://localhost:8080/proj/resources/css/custom1.css
錯誤
這裏是我的代碼
StringBuilder bui = new StringBuilder();
bui.append("<html><head><style>");
bui.append(readFile(path+"/resources/css/custom1.css", Charsets.UTF_8));
bui.append(readFile(path+"/resources/css/custom2.css", Charsets.UTF_8));
bui.append(readFile(path+"/resources/css/custom3.css", Charsets.UTF_8));
bui.append("</style></head>");
bui.append("<body><div><table>");
bui.append(xhtml_file);
bui.append("</table></div></body></html>");
InputStream stream = new ByteArrayInputStream(bui.toString().getBytes(StandardCharsets.UTF_8));
Document doc = tidy.parseDOM(stream, null);
File outputFile = new File(directory+ "FILENAME" +".pdf");
os = new FileOutputStream(outputFile);
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(doc, null);
renderer.layout();
renderer.createPDF(os, false);
renderer.finishPDF();
傳遞的路徑是「http://localhost:8080」 如果我輸入「http://localhost:8080/resources/css/custom1.css」直接進入地址BA r,它顯示了css文件。我嘗試刪除'路徑',但它也沒有得到CSS。我究竟做錯了什麼?