将 Java 框架保存为 Microsoft Word 或 PDF 文档?
Posted
技术标签:
【中文标题】将 Java 框架保存为 Microsoft Word 或 PDF 文档?【英文标题】:Save Java frame as a Microsoft Word or PDF document? 【发布时间】:2009-10-29 01:23:20 【问题描述】:我正在开发一个计费程序 - 现在,当您单击相应的按钮时,它会生成一个显示各种费用等的框架,基本上是一张发票。有没有办法让用户选择将该框架保存为文档,Microsoft Word、Microsoft Works 或 PDF?
【问题讨论】:
【参考方案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】:-
在
BufferedImage
中绘制JFrame
。 paint()
JFrame
的方法
将图像保存为 jpg 或 png 或任何图像格式
获取一些 pdf 库并创建一个空白 pdf(例如 iText)
将图像插入 PDF 文档
保存 - 完成
【讨论】:
【参考方案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 的在线演示作为示例,它为用户提供了预先请求文档的选项。该演示会进行下载,但它可以将文档定向到框架中,并将其留给浏览器显示。这种工作方式(正如其他人所提到的)是从不同的角度看待问题并预先决定什么格式,而不是事后然后尝试保存框架内容。
【讨论】:
以上是关于将 Java 框架保存为 Microsoft Word 或 PDF 文档?的主要内容,如果未能解决你的问题,请参考以下文章
使用Microsoft Office 2010 PIA将PPT转换为SVG
apache_conf 密码保护目录(将两个文件保存到root)https://www.zigpress.com/2014/09/22/password-protecting-an-entire-wo
使用 JDBC 将 Microsoft Access 数据库连接到 Java 并进行编译
将数据网格中的数据保存到 Microsoft Word 文档中
通过将文件(即 docx、xlsx、txt)发送到“Microsoft XPS Document Writer”打印机,以编程方式将文件(即 docx、xlsx、txt)转换(保存)为 XPS