我试图在JavaFX中制作一个可保存的(可打印的)表单,也就是说,它可以以PDF或其他一些可打印格式保存在计算机中。我在谷歌搜索,发现了很多链接。我在Stack Overflow中发现了一个问题 - How to generate printable (and savable) forms with Java?
我从上面的链接中找到了JasperReports,iText和Docmosis。我无法使用这些来制作所需的表格。那么可以通过在JavaFX中编码来生成PDF文件吗?
答案 0 :(得分:2)
您可以尝试Apache的PDFBox。我正在使用它阅读PDF并取得了巨大的成功,尽管我还没有与任何写作操作合作。教程here和here。我主要使用他们的文档,找到here。
一旦你看一下文档,从PDF中读取就相当简单了,但这是我如何使用它:
//PDFBox API doesn't include generics for PDAcroForm.getFields();
//type-cast should always be safe
@SuppressWarnings("unchecked")
List<PDField> fields = form.getFields();
String v;
for (PDField field : fields)
{
v = field.getValue();
values.put(field.getFullyQualifiedName(), v == null ? "" : v);
}
保存为PDF的逆操作同样应该相当简单:field.setValue(String value)
。同样,我还没有尝试保存任何PDF文件。
另外需要注意的是:它有助于自己开发PDF表单,或者与制作它的人协调(假设您依赖我的完全限定名称映射值的方法)。如果您尝试保留依赖于FQN的数据,并且它在PDF本身中发生了更改,则可能会出现问题。