在JSP中以编程方式打印网页

hpxqektj  于 2023-01-15  发布在  其他
关注(0)|答案(5)|浏览(170)

我有一个基于J2EE的Web应用程序。
在其中一页中有一个标有“打印”的按钮。
我的问题是这样的:
用户输入工具名称,例如:工具名称1工具名称2工具名称3
然后单击“打印”。
预期操作是从数据库中检索3个工具的工具详细信息,然后每页打印一个工具。(即,点击此按钮后,在将详细信息发送到打印机之前,应在后台数据库检索中进行一些处理......)
如何才能最好地完成打印网页的任务?

z8dt9xmd

z8dt9xmd1#

您可以让按钮调用一些Javascript:

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

您可以使用类似以下的方式来调用此函数:

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

或直接作为:

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

如果需要将输出格式化到多个页面上,可以使用page-break-beforeCSS属性。例如:

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

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

您可以按照Guido García的建议将其放在一个特定于“print”的样式表中。

e5nqia27

e5nqia272#

在客户端,只需调用window.print();
其他提示:

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

cgvd09ve3#

打印按钮应该将表单提交到服务器,在服务器上准备要打印的输出(工具详细信息等)。这通常使用JSP页面或其他页面呈现。
要完成这项工作,请在结果页面上调用window.print(),并在页面加载(或文档就绪事件)时触发它。
编辑:嗯。我应该看看日期的。哦,好吧,建议成立。

57hvy0tb

57hvy0tb4#

我猜是在客户端吧?如果是的话,除了JavaScript,Java什么都没有。只需调用window.print()方法,它就会提示一个打印对话框窗口。

gdx19jrr

gdx19jrr5#

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

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

两者各有优势。
我也建议你不要只依赖Javascript。当你没有运行JS而导致打印按钮无法打印时,可能会让你感到相当困惑。我建议你创建一个常规的html链接,链接到要打印的页面,用户可以在那里使用浏览器的打印按钮。用javascript隐藏这个链接,并用依赖javascript的按钮替换它。这将确保按钮只在启用javascript时显示。

相关问题