【问题标题】:Save Java frame as a Microsoft Word or PDF document?将 Java 框架保存为 Microsoft Word 或 PDF 文档?
【发布时间】:2009-10-29 01:23:20
【问题描述】:

我正在开发一个计费程序 - 现在,当您单击相应的按钮时,它会生成一个显示各种费用等的框架,基本上是一张发票。有没有办法让用户选择将该框架保存为文档,Microsoft WordMicrosoft WorksPDF

【问题讨论】:

    标签: java ms-word save


    【解决方案1】:

    一种方法是将帧保存为图像,您可以使用以下语法将其转换为图像。

    BufferedImage myImage = new BufferedImage(size.width,size.height,
                                BufferedImage.TYPE_INT_RGB);
    
    Graphics2D g2 = myImage.createGraphics();
    
    myComponent.paint(g2);
    

    然后您可以保存此图像并将其传递到 jasper 报告中。然后,您可以从 JasperPrint 对象以几种不同的格式保存,包括 pdf。更好但类似的方法是将 Graphics 上下文传递给 JasperReports(在 jasper 中有一个渲染器可以做到这一点,而且质量要好得多)。

    【讨论】:

      【解决方案2】:
      1. BufferedImage 中绘制JFramepaint()JFrame的方法
      2. 将图像保存为 jpg 或 png 或任何图像格式
      3. 获取一些 pdf 库并创建一个空白 pdf(例如 iText)
      4. 将图像插入 PDF 文档
      5. 保存 - 完成

      【讨论】:

        【解决方案3】:

        与其生成word文档,我更愿意使用iText这样的Java库来生成PDF文档(更便携),或者更好的是JasperReport报告库,可以输出范围广泛的报告bigbrother82 在评论中建议的格式(PDF、XML、HTML、CSV、XLS、RTF、TXT)。在我看来,这比使用图像更清晰,尤其是在打印时(更不用说您的发票可能是多页文档)。

        【讨论】:

        • 我也会考虑只使用 JasperReports(它使用 itext 创建 pdf),因为您可以编写一次报告并将其导出为 rtf、word、pdf 甚至 html。所以用户可以选择。并且您只需付出很少的额外努力。
        【解决方案4】:

        我可能会从稍微不同的方向来看待这个问题,而不是询问如何将 GUI 表单按原样转换为 PDF 或 word 文档,而是询问如何将该内容转换为 Word/PDF 文档。

        这个问题的答案是Apache FOP。生成XSL-FO 文件并要求 FOP 将其转换为 RTF 文档(扩展名为 .DOC)或 PDF。

        通常通过生成包含您需要打印的数据的XML 文件来完成此操作。然后使用XSLT 将该XML 转换为XSL-FO。然而,我发现直接使用模板语言(例如Freemarker)生成 XSL-FO 文件更容易。

        【讨论】:

          【解决方案5】:

          您可能希望查看Docmosis 的在线演示作为示例,它为用户提供了预先请求文档的选项。该演示会进行下载,但它可以将文档定向到框架中,并将其留给浏览器显示。这种工作方式(正如其他人所提到的)是从不同的角度看待问题并预先决定什么格式,而不是事后然后尝试保存框架内容。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2019-04-04
            • 1970-01-01
            • 2013-09-25
            • 2011-11-10
            • 2012-03-07
            • 2012-07-31
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多