在Java项目中如何将提交后的HTML表单转换为PDF,然后附加到电子邮件。
Springboot和Thymeleaf是正在使用的框架。表单如下:
http://jsfiddle.net/x1hphsvb/5563/
到目前为止的控制器:
@org.springframework.stereotype.Controller
@EnableAutoConfiguration
public class Controller {
@RequestMapping("/")
String home() {
return "static/index.html";
}
public static void main(String[] args) throws Exception {
SpringApplication.run(Controller.class, args);
}
}
我已经看过这个tutorial,并寻找了一种使用PDF Box而不成功的方法。
我应该在后端获取数据并将其插入HTML模板还是将数据插入PDF模板。
PDF表单还应该具有类似于HTML的可折叠性。
答案 0 :(得分:1)
您所引用的示例中有我的名字(引用以com.lowagie
开头的程序包名称),这意味着它与iText有关,而不与pdfBox有关。 PdfBox不会将HTML转换为PDF,因此这不是一种选择。
其中带有我的名字的iText版本早于iText 5,并且不应再用于商业环境。参见Can iText 2.1.7 / iTextSharp 4.1.6 or earlier be used commercially?
您还可以使用标签飞碟。 Flying Saucer是将HTML转换为PDF的第三方工具,该工具基于iText的旧版本构建。
提示:
您写道:“ PDF表单还应该具有类似于HTML的可折叠性。”
请检查ISO 32000-2(PDF 2.0标准),您会发现PDF表单无法像HTML表单一样折叠。您可能已经看到了具有类似功能的PDF文档,但是这些表格不是ISO 32000-2文档。它们是XFA表单。 XFA代表XML Forms Architecture,而该技术已被弃用。除了Adobe Reader,您几乎找不到支持这种形式的查看器。
在数据输入方面,PDF丢失了,HTML 5赢了。如果您已阅读问题How to create template and generate pdf using template and database data iText C#的答案,则会发现DITO产品选择创建用于数据输入的HTML 5模板和用于数据表示的PDF模板。