XHTML в PDF с использованием летающей -тарелки как кэшировать css

В моем производственном конвейере мне нужно создать несколько сотен PDF-файлов из HTML. Для этого сценария я сначала конвертирую HTML в XHTML. Затем я передаю «очищенный» XHTML и uri средству визуализации.

Поскольку *.css и imageFiles одинаковы для всех файлов XHTML, мне не нужно разрешать их все время, пока я обрабатываю файл. Я успешно использую следующий код для кэширования изображений. Как я могу кэшировать файлы.css? Я хочу не помещать все файлы в мой путь к классам.

ITextRenderer renderer = new ITextRenderer();

ResourceLoaderUserAgent callback = new ResourceLoaderUserAgent(renderer.getOutputDevice());
callback.setSharedContext(renderer.getSharedContext());

for (MyObject myObject : myObjectList) {

    OutputStream os = new FileOutputStream(tempFile);

    final DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
    documentBuilderFactory.setValidating(false);
    DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
    org.w3c.dom.Document document = builder.parse(myObject.getLocalPath); // full path to.xhtml

    renderer.getSharedContext().setUserAgentCallback(callback);

    renderer.setDocument(document, myObject.getUri());
    renderer.layout();
    renderer.createPDF(os);

    os.flush();
    os.close();
}
   ...


private static class ResourceLoaderUserAgent extends ITextUserAgent
{
    public ResourceLoaderUserAgent(ITextOutputDevice outputDevice) {
        super(outputDevice);
    }

    protected InputStream resolveAndOpenStream(String uri) {
        InputStream is = super.resolveAndOpenStream(uri);
        System.out.println("IN resolveAndOpenStream() " + uri);

        return is;
    }
}
7
задан metar 24 July 2012 в 14:37
поделиться