是否可以使用飞碟(XHTML-Renderer)将 css 解析为类路径资源?

Ste*_*hen 7 css java flying-saucer xhtmlrenderer

我正在尝试将资源打包到一个 jar 中,但是我无法让 Flying Saucer 在类路径上找到 css -我无法轻松构建 URL 以无缝解决这个问题

飞碟有没有办法在类路径上指定资源包来解析项目和图像?

注意:我在一个没有文件系统写入权限的 webstart 应用程序中运行它,所以 jar 扩展不是一个真正的选择。

sto*_*vik 6

您应该实现一个提供给 XHTMLPanel 的 UserAgentCallback,如下所示:

private static class UAC extends NaiveUserAgent {
    @Override
    public String resolveURI(String uri) {
        return uri;
    }

    @Override
    protected InputStream resolveAndOpenStream(String uri) {
        java.io.InputStream is = null;
        URL url = UAC.class.getResource(uri);
        if (url == null) {
            XRLog.load("Didn't find resource [" + uri + "].");
            return null;
        }
        try {
            is = url.openStream();
        }
        catch (java.net.MalformedURLException e) {
            XRLog.exception("bad URL given: " + uri, e);
        }
        catch (java.io.FileNotFoundException e) {
            XRLog.exception("item at URI " + uri + " not found");
        }
        catch (java.io.IOException e) {
            XRLog.exception("IO problem for " + uri, e);
        }
        return is;
    }
}

XHTMLPanel panel = new XHTMLPanel(new UAC());
Run Code Online (Sandbox Code Playgroud)