Jakarta ee 用Java编程打印网页
我有一个基于J2EE的web应用程序 其中一页上有一个标有“打印”的按钮 我的问题是这样的: 用户输入工具名称,例如: 工具名1 工具名2 工具名3 然后点击“打印” 预期的操作是从数据库中检索3个工具的工具详细信息,然后每页打印一个工具。(即,单击此按钮时,在将详细信息发送到打印机之前,应在后台数据库检索中进行一些处理…) 请建议如何最好地完成这项打印网页的任务 希望问题清楚Jakarta ee 用Java编程打印网页,jakarta-ee,printing-web-page,web-based,Jakarta Ee,Printing Web Page,Web Based,我有一个基于J2EE的web应用程序 其中一页上有一个标有“打印”的按钮 我的问题是这样的: 用户输入工具名称,例如: 工具名1 工具名2 工具名3 然后点击“打印” 预期的操作是从数据库中检索3个工具的工具详细信息,然后每页打印一个工具。(即,单击此按钮时,在将详细信息发送到打印机之前,应在后台数据库检索中进行一些处理…) 请建议如何最好地完成这项打印网页的任务 希望问题清楚 提前感谢…:)我想是客户端吧?如果是这样的话,那么除了JavaScript之外,Java什么都没有。只需调用windo
提前感谢…:)我想是客户端吧?如果是这样的话,那么除了JavaScript之外,Java什么都没有。只需调用window.print()方法,它将提示一个打印对话框窗口。您可以让按钮调用一点Javascript:
<script>
function printPage() {
window.print();
}
</script>
函数printPage(){
window.print();
}
您可以使用类似以下的方式来称之为:
<form>
<input TYPE="button" onClick="printPage()">
</form>
或直接作为:
<input TYPE="button" onClick="window.print()">
如果需要将输出格式化为多个页面,可以使用分页符beforeCSS属性。例如:
<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()代码>
其他提示:
- 您可以使用打印机友好的CSS自定义页面显示:
- 您可以使用服务器端组件生成页面的PDF版本。在许多情况下,深入控制最终演示文稿是很有趣的
如果您的待打印页面需要额外的逻辑,您可以执行以下任一操作:
- 将计算出的数据包括在常规页面中,但将其隐藏(style=“visibility:hidden”),然后使用print.css(media=print)使其可见,如所述,这样它只在打印时显示
- 创建一个新页面,您可以从包含计算数据的常规页面链接到该页面
两者都有各自的优势
我还建议您不要只依赖Javascript。当打印按钮因为没有运行JS而无法打印时,可能会让人很困惑。
我建议您创建一个常规的html链接,该链接指向用户可以使用浏览器的“打印”按钮的“待打印”页面。
使用javascript隐藏此链接,并将其替换为依赖于javascript的按钮。
这将确保按钮仅在启用javascript时显示。打印按钮应将表单提交给服务器,在服务器上准备要打印的输出(工具详细信息等)。这是按照通常使用JSP页面或其他方式呈现的
要完成作业,请在结果页面上调用window.print()
,并在页面加载(或文档准备就绪事件)时将其激发
编辑:嗯,我应该看看日期。哦,好吧,建议是正确的。很抱歉,我认为我没有把问题说清楚。。。。在将详细信息发送到打印机之前,我需要在后台进行一些处理。。。该页面实际上有一些工具名,其详细信息存储在数据库中。我需要获取详细信息并在页面中打印每个工具的详细信息。我假设您没有询问如何从数据库检索数据。你是在问如何在不同的页面上获得每一组结果吗?很抱歉,我想我没有把问题说清楚……我为问题添加了更多信息……谢谢Boris我的问题是这样的:用户输入工具名称,例如:ToolName1 ToolName2 ToolName3,然后单击“打印”。预期的操作是从数据库中检索3个工具的工具详细信息,然后每页打印一个工具。希望我把问题说清楚。谢谢。我修改了这个问题,使问题更清楚。
<link rel="stylesheet" type="text/css" media="print" href="print.css" />