用Java编程方式打印网页

时间:2008-10-14 09:56:44

标签: java-ee printing-web-page web-based

我有一个基于J2EE的Web应用程序。

在其中一个页面中有一个标有“打印”的按钮。

我的问题是这样的:

用户输入工具名称,例如: ToolName1 ToolName2 ToolName3

然后点击“打印”。

预期的操作是从db检索3个工具的工具详细信息,然后每页打印一个工具。 (即单击此按钮时,应在后台数据库检索中进行一些处理,然后再将详细信息发送到打印机...)

请建议如何最好地完成打印网页的任务。

希望问题很清楚。

提前致谢...:)

5 个答案:

答案 0 :(得分:3)

你可以让按钮调用Javascript:

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

你可以使用类似的东西来打电话:

<form>
<input TYPE="button" onClick="printPage()">
</form>

或直接作为:

<input TYPE="button" onClick="window.print()">

如果您需要将输出格式化为多个页面,则可以使用 page-break-before CSS属性。例如:

<style>
    div.tool {
        page-break-before: always
    }
</style>

<div class="tool" id="tool1">
...
</div>
<div class="tool" id="tool2">
...
</div>

你可以把它放在GuidoGarcía建议的“打印”特定样式表中。

答案 1 :(得分:3)

在客户端,您只需拨打window.print();

即可

其他提示:

  • 您可以使用适合打印机的CSS来自定义页面显示:
<link rel="stylesheet" type="text/css" media="print" href="print.css" />
  • 您可以使用生成页面PDF版本的服务器端组件。在许多情况下,对最终演示进行深入控制是很有趣的。

答案 2 :(得分:1)

打印按钮应将表单提交到您准备要打印的输出的服务器(工具详细信息等)。这通常使用您的JSP页面或其他任何方式呈现。

要完成这项工作,请在结果页面上调用window.print(),并在页面加载(或文档就绪事件)上触发。

编辑:嗯。我应该看看日期。哦,建议就是这样。

答案 3 :(得分:0)

在客户端我猜?如果是这样,关于Java,关于JavaScript,什么也没有。只需调用window.print()方法,它将提示打印对话框窗口。

答案 4 :(得分:0)

如果您要打印的页面需要额外的逻辑,您可以执行以下任一操作:

  • 在常规页面中包含计算数据,但隐藏它(style =“visibility:hidden”)然后使用Guido描述的print.css(media = print)使其可见,因此它只显示打印时。
  • 创建一个新页面,您可以从包含计算数据的常规页面链接到该页面

两者都有其优势。

我还建议您不仅要依赖Javascript。当打印按钮因为您没有运行JS而无法打印时,可能会相当混乱。 我建议你创建一个常规的html链接,进入待打印的页面,用户可以使用浏览器的打印按钮。 使用javascript隐藏此链接并将其替换为javascript依赖按钮。 这将确保按钮仅在启用javascript时显示。