这是我目前的工作流程:
- 从数据库加载 POJO。
- 将它们传递给 Velocity,在内存中呈现 HTML 模板。
- 然后使用 Flying Saucer 和 iText 将输出的 HTML 渲染为 PDF。
当我尝试解析图像等相对 URL 时会出现问题。由于我的文档存在于内存中,它根本不知道如何解析图像或样式表。如何将文档设置为内存中的 String 对象,同时仍将其传递给目录以从中加载资源?
String velocityOutput = VelocityEngineUtils.mergeTemplateIntoString(...);
ByteArrayOutputStream output = new ByteArrayOutputStream(...);
ITextRenderer renderer = new ITextRenderer();
renderer.setDocumentFromString(velocityOutput);
renderer.layout();
renderer.createPDF(output);
我需要在内存中做所有事情,因为我只是生成要通过电子邮件发送给客户的报告。生成为 PDF 时,如何<img src="..."/>
在我的 HTML 模板中解析相对 URL?