1

我有一个基于 J2EE 的 Web 应用程序,在其中单击一个按钮我需要从 Java 创建一个 word 文件。我希望能够将打印命令发送到该文件,以便在用户无需打开文档并手动执行的情况下打印该文件。

谁能告诉我这是否可行,如果可以,如何进行?

4

5 回答 5

1

生成文件很容易。看看Apache POI,一个访问 Microsoft 格式文件的 Java API。该网站有很多例子。

关于打印它,我真的不知道这是否可能。我认为您总是需要在客户端打开它才能打印它。

于 2008-10-14T18:47:53.370 回答
1

您必须创建一个 ActiveX 来加载文档内容并触发打印命令。没有其他方法可以在客户端计算机中打开文件并触发命令。

编辑:如果你可以使用 HTML,你可以这样做

<script>
function load() {
window.print();
window.close();
}
</script>

<body onLoad="load()" ...>

在弹出窗口中打开文档并打印。然后关闭弹出窗口。

于 2008-10-14T18:48:30.247 回答
1

您可以使用只有 2 行的简单AutoIt代码。并完成您的工作,在您的程序中执行该代码文件。

http://www.autoitscript.com/site/autoit/

像这样的代码:

$sRTFfilename = "C:\t\t.rtf" ;Change this path to one of your own 
ShellExecute('"' & $sRTFfilename & '"', "", @ScriptDir, "print", @SW_HIDE)

;-)

于 2011-07-08T16:17:40.863 回答
0

当您特别提到 Java 作为您的环境时,您可能希望将 OpenOffice 或 StarOffice 考虑在内 - 它们有一个 API,它比 ActiveX 或远程控制 Word 更容易通过 Java 进行对话。

它并不比 Word 更重量级。参考资料和文档应该很容易找到。

我在一家公司工作过,我们经常使用 Remote-controlled-Word,最后改用 StarOffice。这不是用于打印,而是用于文档转换(例如从 Word 到 HTML),但应该足够相似。

当然,我说的是“旧版本的 Word”,但我们通常会遇到 Word 锁定的问题,其中一些任意对话框要求确认 Word 找到的任何内容 - 我们的服务器(在后台运行,没有桌面联系人)显然是一项操作没能。改用 StarSuite 后情况好多了。

于 2008-10-14T19:08:14.373 回答
0

是否可以改为以 HTML 格式呈现文档?如果你能做到这一点,那么你就可以相当简单地允许用户通过浏览器进行打印。您可能还可以更轻松地使用 PDF,至少它会更容易跨不同平台访问。

如果你被迫使用 MS Word,那么你能做的将非常有限。正如Leonel所提到的,我认为 ActiveX 将是您唯一的选择,即使那样必须打开文档,您也可以从浏览器自动启动 Word。您甚至可以通过 ActiveX 将 Word 的实例嵌入到 IE 中,但我不能 100% 确定这一点。

于 2008-10-14T19:25:15.557 回答