Преобразование 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, но мне это кажется излишним.