我有一个基于 J2EE 的 Web 应用程序。
在其中一页中有一个标有“打印”的按钮。
我的问题是这样的:
用户输入工具名称,例如:ToolName1 ToolName2 ToolName3
然后点击“打印”。
预期的操作是从 db 中检索 3 个工具的工具详细信息,然后每页打印一个工具。(即单击此按钮时,应在后台数据库检索中进行一些处理,然后再将详细信息发送到打印机...)
请建议如何最好地完成打印网页的任务。
希望问题很清楚。
提前致谢...:)
我有一个基于 J2EE 的 Web 应用程序。
在其中一页中有一个标有“打印”的按钮。
我的问题是这样的:
用户输入工具名称,例如:ToolName1 ToolName2 ToolName3
然后点击“打印”。
预期的操作是从 db 中检索 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>
您可以按照 Guido García 的建议将其放在“打印”特定样式表中。
在客户端,你可以打电话window.print();
其他提示:
<link rel="stylesheet" type="text/css" media="print" href="print.css" />
打印按钮应将表单提交到您准备要打印的输出(工具详细信息等)的服务器。这会像往常一样使用您的 JSP 页面或其他方式呈现。
要完成这项工作,请在结果页面上调用window.print()
并在页面加载(或文档就绪事件)时触发它。
编辑:嗯。我应该看看日期。哦,好吧,建议成立。
我猜在客户端?如果是这样,那么除了 JavaScript 之外,没有什么是关于 Java 的。只需调用 window.print() 方法,它就会提示一个打印对话框窗口。
如果您要打印的页面需要额外的逻辑,您可以执行以下任一操作:
两者都有自己的优势。
我还建议您不要只依赖 Javascript。由于您没有运行 JS,因此无法打印打印按钮时可能会相当混乱。我建议您创建一个常规的 html 链接,该链接指向要打印的页面,用户可以在其中使用浏览器的打印按钮。使用 javascript 隐藏此链接并将其替换为 javascript 相关按钮。这将确保该按钮仅在启用 javascript 时显示。