我正在开展一个项目,我必须打印一些我生成的报告。我有5个报告可以在html页面上显示。
但是,我只想打印所有这些报告而不向用户显示。我只是想让它们直接从后端打印出来。
var getAll5Reports; // has all the reports
举个例子,这里是html代码作为报告:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>ListResult</title>
</head>
<body>
<div>
</div>
</body>
</html>
答案 0 :(得分:5)
您控制从浏览器打印或不打印内容的方式是使用@media CSS选择器(http://www.w3schools.com/css/css3_mediaqueries.asp)
在你的CSS中你会有这样的东西:
@media print
{
@page
{
size: 8.5in 11in; /* width height */
}
.noprint
{
display: none;
}
}
然后使用JQuery或您拥有的任何类型的JavaScript支持,将noprint
类添加到您不想要的报告中。 (https://api.jquery.com/addclass/)
$('#myreport').addClass('noprint');
与此同时,您可以使用@media打印来更改某些内容的格式,以便在纸上看起来不错。您可能想查看有关分页资源(http://www.tutorialspoint.com/css/css_paged_media.htm)
的更多信息当然,您不必通过JavaScript添加“noprint”类。您可以在标记中或在生成页面时执行此操作。
答案 1 :(得分:0)
如果您的报告是以HTML格式呈现的,并且您希望从后端打印它们而用户没有看到任何内容(即没有打印对话框或类似内容),那么过去使用MeadCo ScriptX组件我已经取得了很大的成功为了这个目的。
我以前能够使用它直接打印到打印机。我当时觉得有用的是它会从服务器直接打印到打印机的html页面(例如,您可以使用Server.Execute检索HTML,然后将其传递给组件,以及打印机路由信息)。 p>
这是一个商业组件,因此已经支付了许可问题,但在打印HTML页面方面确实符合我的要求,用户根本没有任何输入(即没有打印对话框弹出窗口等)。可能有很多竞争对手的产品,我不熟悉它们,不久前就用过了。
(我不为供应商工作,或与供应商有任何联系!)