如何在不打开Word的情况下使用Java打印Word文档?

时间:2008-10-14 18:42:40

标签: java-ee printing ms-word web-based

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

有人可以告诉我这是否可行,如果可以的话怎么办?

提前致谢。

5 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

编辑: 如果您可以使用HTML,则可以执行

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

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

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

答案 2 :(得分: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)

- )

答案 3 :(得分:0)

由于您特别提到Java作为您的环境,您可能需要将OpenOffice或StarOffice考虑在内 - 他们使用的API比使用Java或远程控制Word更容易与Java交谈。

它不比Word更重要。参考文献应该很容易找到。

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

当然我说的是“Word的旧版本”,但我们通常遇到Word锁定的问题,请求确认Word找到的任何内容 - 操作即我们的服务器(在没有桌面的情况下在后台运行)联系)显然是不能的。切换到StarOffice后,这样做了很多。

答案 4 :(得分:0)

是否可以用HTML呈现文档?如果你可以这样做,那么你可以让用户通过浏览器相当简单地打印。您可能还可以更轻松地使用PDF,至少可以在不同平台上访问它。

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