gpt4 book ai didi

css - Flying Saucer/iText PDF 找不到 css 文件

转载 作者:行者123 更新时间:2023-11-28 04:47:30 34 4
gpt4 key购买 nike

我可以使用 Flying Saucer/iText 生成 PDF。但是,我无法弄清楚如何将样式表包含在 PDF 渲染中。

我用过这个flying-saucer/iText PDF in servlet not finding css file作为引用。

涉及多个 css 文件,所以我无法使用 renderer.setDocument(doc, "http://example.com/something/page.html");作为解决方案

我已经实现了一个类似于提问者使用的东西,但它返回一个 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”,它会显示 css 文件。我尝试删除“路径”,但它也没有获取 CSS。我做错了什么?

最佳答案

尝试使用 file:///url 协议(protocol)指向(三个斜线)直接指向 css 文件。

关于css - Flying Saucer/iText PDF 找不到 css 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40869430/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com