【问题标题】:FlyingSaucer: convert an HTML document to PDF ignoring external CSS?FlyingSaucer:将 HTML 文档转换为 PDF 忽略外部 CSS?
【发布时间】:2011-07-15 07:20:46
【问题描述】:

我正在使用以下内容将 HTML 转换为 PDF:

InputStream convert(InputStream fileInputStream) {

        PipedInputStream inputStream = new PipedInputStream()
        PipedOutputStream outputStream = new PipedOutputStream(inputStream)
        new Thread({
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            factory.setNamespaceAware(false);
            DocumentBuilder builder = factory.newDocumentBuilder();
            Document document = builder.parse(fileInputStream)

            ITextRenderer renderer = new ITextRenderer()
            renderer.setDocument(document, "")
             renderer.layout()
            renderer.createPDF(outputStream)
        }).start()

        return inputStream
    }

从文档中,显然我应该能够在某处设置“用户代理”解析器,但我不确定具体在哪里。有谁知道如何忽略文档中的外部 CSS?

【问题讨论】:

    标签: html css pdf groovy flying-saucer


    【解决方案1】:

    不是同一个问题,但我对此问题的回答也适用:Resolving protected resources with Flying Saucer (ITextRenderer)

    重写此方法:

    public CSSResource getCSSResource(String uri) {
        return new CSSResource(resolveAndOpenStream(uri));
    }
    

    public CSSResource getCSSResource(String uri) {
        return new CSSResource(new ByteArrayInputStream([] as byte[]));
    }
    

    【讨论】:

    • 我怎么解决不了?我尝试重新调整 null,但这给出了 nullpointerexception。 java.lang.NullPointerException at org.xhtmlrenderer.context.StylesheetFactoryImpl.parse(StylesheetFactoryImpl.java:93)
    • 是的,当您更新时,您必须返回一个带有空 InputStream 的 CSSResource。
    猜你喜欢
    • 2012-08-16
    • 2011-02-27
    • 2015-06-29
    • 2021-09-11
    • 1970-01-01
    • 2019-11-12
    • 2016-03-14
    • 2014-03-12
    • 2014-07-25
    相关资源
    最近更新 更多