我有必须打印的页面,但是当我启动打印时,预览很难看,我无法选择和修改我想要的元素(我只想打印几个元素,而我只隐藏其他元素)用于印刷)。
我没有成功用更少的东西(@media print
),所以我制作了一个模板,并在其中注入了我想要打印的元素(使用AngularJS)。问题是原始页面类似于http://example.com/id/page-name/?tab=media
。但是我在我的脚本中添加了一个捕获打印事件的监听器,并将用户重定向到http://example.com/id/page-name/?tab=media&print=true
。
然后超时启动打印脚本(window.print()
),当用户离开打印页面时,脚本会将其重定向到http://example.com/id/page-name/?tab=media
。
问题是它会关闭/打开很多窗口,对用户来说可能会感到不舒服。 我认为我的解决方案很奇怪而且很尴尬,但我没有发现任何其他事情......
那么你有一个打印远程页面的解决方案,它不会产生大量的关闭/打开框架吗?
例如,当我在Ctrl+P
上http://example.com/id/page-name/?tab=media
时,会打印http://example.com/id/page-name/?tab=media&print=true
页面,而不是原始页面?
类似于document.location.href="http://example.com/id/page-name/?tab=media&print=true".print();
或print('http://example.com/id/page-name/?tab=media&print=true');
?
我希望有可能!
答案 0 :(得分:1)
你可以从这个问题angularJS UI tab print selected contend from tab中得到一些想法,并创建像
这样的打印功能 $scope.print = function (divName) {
var printContents = document.getElementById(divName).innerHTML;
var popupWin = window.open('', '_blank', 'width=800,height=700');
popupWin.document.open()
popupWin.document.write('<html><head><link rel="stylesheet" type="text/css" href="style.css" /></head><body onload="window.print()">' + printContents + '</html>');
popupWin.document.close();
}