- // gather CSS
- if (cmsTheme != null) {
- StringBuilder sb = new StringBuilder();
- for (String cssPath : cmsTheme.getWebCssPaths()) {
- sb.append(req.getContextPath()).append(req.getServletPath()).append('/');
- sb.append(themeId).append('/').append(cssPath).append(' ');
+// // DocBook to FO
+// byte[] foBytes;
+// try (ByteArrayOutputStream out = new ByteArrayOutputStream();) {
+// Result xmlOutput = new StreamResult(out);
+// Transformer docBookTransformer = docBoookFoTemplates.newTransformer();
+// docBookTransformer.transform(xmlInput, xmlOutput);
+// foBytes = out.toByteArray();
+// }
+//
+// // FO to PDF
+// try (InputStream foIn = new ByteArrayInputStream(foBytes)) {
+// Fop fop = fopFactory.newFop("application/pdf", resp.getOutputStream());
+// Transformer fopTransformer = transformerFactory.newTransformer(); // identity
+// Source src = new StreamSource(foIn);
+// Result fopResult = new SAXResult(fop.getDefaultHandler());
+// fopTransformer.transform(src, fopResult);
+// }
+//
+
+ Fop fop = fopFactory.newFop("application/pdf", resp.getOutputStream());
+ Transformer docBookTransformer = getDocBoookFoTemplates().newTransformer();
+ Result fopResult = new SAXResult(fop.getDefaultHandler());
+ docBookTransformer.transform(xmlInput, fopResult);
+
+ } else {
+ Result xmlOutput = new StreamResult(resp.getOutputStream());
+ resp.setContentType("text/html");
+ Transformer docBookTransformer = getDocBoookHtmlTemplates().newTransformer();
+
+ // gather CSS
+ if (cmsTheme != null) {
+ StringBuilder sb = new StringBuilder();
+ for (String cssPath : cmsTheme.getWebCssPaths()) {
+ sb.append(req.getContextPath()).append(req.getServletPath()).append('/');
+ sb.append(themeId).append('/').append(cssPath).append(' ');
+ }
+ // FIXME make it more generic
+ sb.append("https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap")
+ .append(' ');
+ sb.append(
+ "https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,300;0,400;0,600;1,400&display=swap")
+ .append(' ');
+ if (sb.length() > 0)
+ docBookTransformer.setParameter("html.stylesheet", sb.toString());