【问题标题】:generate PDF calling information from database in javaFX从javaFX中的数据库生成PDF调用信息
【发布时间】:2018-05-10 23:25:19
【问题描述】:

祝大家有美好的一天。我目前正在构建一个涵盖产品保修申请审查的程序。我正在使用 Netbeans 在 javaFX 中进行操作。节目有以下场景:

  1. 输入每个保证请求信息的屏幕。所有信息都存储在数据库的表中。程序和数据库之间的交互实际上是通过 JDBC 完成的。

  2. 一个屏幕,您可以在其中看到一个表格,其中显示了所有已保存的请求。如果选择了一行,则启用一个携带第三个场景的按钮,该按钮包含被选择的请求的所有数据。

  3. 输入对所选保证申请进行的所有测试数据的屏幕。结果也存储在数据库的另一个表中。

在评估应用程序后,必须生成保修审查报告。目前,这种格式是从 excel 以 pdf 格式生成的。我想要做的是从存储在数据库中的测试数据结果中,我可以从 javaFX 中的程序动态生成 pdf 格式。是否有插件可以自动编写这些文档?我擅长用 LaTEX 编写文本,所以如果有办法从程序中生成 Latex 格式并从数据库中调用必要的信息,那就完美了。在此先感谢您的帮助。欢迎任何指示或想法。

【问题讨论】:

    标签: java database javafx latex pdf-generation


    【解决方案1】:

    您似乎有两个核心要求:

    1. 从数据库中获取适合报告​​的数据
    2. 从 JavaFX 生成 PDF 格式的报告,但可以回退到 LaTEX

    您真正需要的似乎是 Java 的 PDF 库。我可以建议 iTextDocmosis 作为不错的选择(请注意我为 Docmosis 工作)——两者都是商业产品,所以你必须购买。

    假设您使用这些库之一,每个报告的过程是:

    1. 执行查询以获取报告的相应数据
    2. 根据需要处理数据以简化报告阶段
    3. 生成报告

    使用 iText,您将编写查询、操作代码,然后编写包含数据的报表布局代码。 使用 Docmosis 您将编写查询,可能还有一些操作代码(Docmosis 也可以直接与您的 ResultSet 一起使用)和执行报告的代码。布局是在模板中设计的(Word 或 Libre Office Writer)。

    当您提到“自动编写这些文档”时,我假设您的意思是创建 iText 和 Docmosis 可以做到的 PDF 文件格式。如果您的意思是创建报表布局本身,那么您总是需要设计/编写一些东西来使报表满足您的要求。

    希望对你有帮助。

    【讨论】:

    • 非常感谢您的回复,请在下面阅读我的回答并告诉我您的想法。
    【解决方案2】:

    非常感谢保罗的回复!我发现了一些与你提到的库相关的东西,而且确实是我正在寻找的东西。我注意到你更多地关注这个主题。然后,您不知道书店,最好是免费的,这使我有可能执行以下操作(伪代码):

    1. 从数据库中取出行
    2. 将该行的信息保存在已创建类的属性中。
    3. create text1:“有引用的保证”+object.attribute1+“鉴于物理修订测试表明“+object.attribute2+”没有被批准
    4. 创建文本2:“...”
    5. ...
    6. 创建文本 n:“...”
    7. 取文本 1 并将其放在 pdf 文档的页眉中
    8. 取文本2,加粗放在副标题中
    9. 生成一个表格并用文本 3、4 ... 的内容填充它
    10. 将所有信息编译为 pdf 格式(word 文件、xls 或其他文件,如果可能)

    我很清楚,使用您推荐的库,您可以轻松地从 1到8,但我不知道是否可以在创建的模板中输入文本,以便库容纳模板文件各个区域中的所有文本。我想这可以用 Latex 轻松完成,因为一切都是用纯文本编写的。

    我找到了一个名为 Java LaTeX Report (JLR) 的库,它允许我做我想做的事。此信息可能对某人有用。再次感谢您的回答 Paul,如果您认为您提到的库比 JLR 更容易完成这项工作,请告诉我!

    【讨论】:

    • 你好尼尔森。通常最好坚持你知道/熟悉的东西。由于 JRL 适合这种方式,因此您一定要尝试一下。我建议首先创建 simple 示例来测试从一端到另一端的完整流程 - 从输入到创建文档。然后您将能够运行更复杂的测试。这种方法应该有助于快速发现挑战所在。
    猜你喜欢
    • 1970-01-01
    • 2021-04-09
    • 2016-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    相关资源
    最近更新 更多