FlyingSaucer: конвертировать HTML-документ в PDF, игнорируя внешний CSS? - PullRequest
1 голос
/ 14 марта 2011

Я использую следующее для преобразования 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
    }

Из документации, по-видимому, я должен быть в состоянии установить где-нибудь определитель "User Agent", но я не уверен, где именно Кто-нибудь знает, как игнорировать внешний CSS в документе?

1 Ответ

1 голос
/ 15 марта 2011

Не тот же вопрос, но мой ответ на этот вопрос будет работать и здесь: Восстановление защищенных ресурсов с помощью 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[]));
}
...