【发布时间】:2016-03-18 21:06:05
【问题描述】:
我有一种情况,当用户查看他们的订单历史记录时,他们被提供了一个链接,可以打印他们发票的 PDF 版本。目前,当用户单击链接时,PDF 将自动下载到他们的计算机上。
“上级”希望改变这一点,所以当用户点击链接打印 pdf 时,会出现一个打印对话框,而不是自动下载 PDF。
我已经能够在新窗口中打开 pdf,但是当调用 pdf 时,它不会显示 pdf,而是会自动下载它。
我已经在整个互联网上搜索了一个解决方案,但还没有产生任何结果。如果可能,这需要通过 JavaScript 或 jQuery 来完成。
HTML
<p><a id="print_pdf" target="_blank">Click to Print Invoice</a>
JavaScript / jQuery
var print_pdf_link = $('#print_pdf').attr('href');
var linkNo2 = "privatefile.dhtml~useridtext~&file=~username~_rep.pdf";
$('#print_pdf').click(function(){
w = window.open(linkNo2);
w.print();
});
我也用过:
<a href="#" onclick="window.open('privatefile.dhtml~useridtext~&file=~username~_rep.pdf', '_blank', 'fullscreen=yes'); return fal
se;">MyPDF</a>
* 请注意波浪号之间的文本是包含来自后端的值的占位符
感谢您的帮助!
【问题讨论】:
-
听起来你应该构建一个只打印的样式表。然后,您可以将按钮连接到
window.print()以打印页面而无需下载任何内容。 -
我相信浏览器的偏好在很多情况下会优先考虑,因此如果您无法控制用户的浏览器设置(即外部公司标准构建的 PC),您可能找到的任何解决方案都不会是防弹的
-
我认为你最好的做法是收集论据以说服上级为什么你不会实现该功能。作为用户,我不希望自动打印。我想将 PDF 保存到我的 Dropbox 并在我方便的时候在家打印。或者根本不打印在纸上,因为那是环境浪费。很抱歉,这不是一个技术性的答案,但有时最好的解决方案是确定这不是一个值得解决的问题。这是其中之一。
-
@AmedeeVanGasse,后端程序员最终与“高层”(以及我在这个项目上的笔记和 cmets)进行了对话,并确定我们将只更改页面上的文本而不是试图拦截自动下载的 pdf。
-
还有很多欢乐的......
标签: javascript jquery pdf