Springboot表格转换HTML-> PDF

时间:2018-06-21 22:24:45

标签: java spring thymeleaf pdfbox flying-saucer

在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的可折叠性。

1 个答案:

答案 0 :(得分:1)

关于将HTML转换为PDF

您所引用的示例中有我的名字(引用以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表单

您写道:“ 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模板。