Преобразование Freemarker в PDF

Я разрабатываю отчеты с помощью freemarker, у меня проблема, когда мне нужен обработанный вывод в формате PDF.

что я хочу сделать, это передать шаблон HTML + CSS fremarker движку freemarker и вывести обработанный HTML в формате PDF. Текущая проблема у меня есть о том, как преобразовать обработанный freemarker в PDF

    try {
        Configuration cfg = new Configuration();
        Template tpl = cfg.getTemplate("example.ftl");
        OutputStreamWriter output = new OutputStreamWriter(System.out);

        Map testHashMap = new HashMap();
        testHashMap.put("test", "testValue");

        tpl.process(testHashMap, output);

    } catch (Exception e) {
        e.printStackTrace();
    }

при поиске в Интернете я не смог найти никакой информации по этой теме, но я узнал о iText рамки

try {
    DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
    Document doc = builder.parse(new StringBufferInputStream(buf.toString()));
    ITextRenderer renderer = new ITextRenderer();
    renderer.setDocument(doc, null);
    renderer.layout();
    OutputStream os = response.getOutputStream();
    renderer.createPDF(os);
    os.close();
} catch (Exception ex) {
    ex.printStackTrace();
}

проблема теперь в том, как объединить эти два фрагмента кода для создания pdf?

вся помощь действительно ценится

С уважением, MilindaD

1 ответов


Я думаю, что было бы лучше использовать два разных трубопровода и рассматривать их как два разных представления одной и той же модели.

данные - > Freemarker transfomer - > HTML

данные - > трансформатор iText - > pdf

или вы можете использовать XSLT в html и использовать XSL-FO, как Apache FOP, но мне это кажется излишним.