【问题标题】:Prevent PDF from auto-downloading and have it Auto Print instead防止 PDF 自动下载并改为自动打印
【发布时间】: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


【解决方案1】:

试试吧,希望我能用上。

var pfHeaderImgUrl = '';
var pfHeaderTagline = '';
var pfdisableClickToDel = 0;
var pfHideImages = 0;
var pfImageDisplayStyle = 'right';
var pfDisablePDF = 0;
var pfDisableEmail = 0;
var pfDisablePrint = 0;
var pfCustomCSS = '';
var pfBtVersion = '1';

(function() {
  var js, pf;
  pf = document.createElement('script');
  pf.type = 'text/javascript';

  if ('https:' === document.location.protocol) {
    js = 'http://domain.com//main.js'
  } else {
    js = 'http://domain.com/printfriendly.js'
  }
  pf.src = js;
  document.getElementsByTagName('head')[0].appendChild(pf)
})();
<a href="" 
   style="color:#6D9F00;text-decoration:none;"
   class="printfriendly" 
   onclick="window.print();return false;"
   title="Print">Print</a>

【讨论】:

  • 我正在 Android 应用程序上阅读此内容。你能不要把所有的东西都放在一条线上吗?
  • @waqt,我添加了您的代码,但它似乎只打印了 .html 页面。它并没有阻止 PDF 自动下载,而是为 .pdf 提供了一个打印对话框。
  • 您的意思是您已经有一些 pdf 供用户使用,并希望在用户点击下载或显示链接时直接显示给用户?
  • Mr.Amedee Van Gasse,我把它放在网上但是,ochi 已经编辑了所有内容,请请求他这样做
  • @JHWebDev,上面的代码100%正常,你说的是浏览器故障,请通过从这里下载工具升级你的浏览器pdfill.com,即6不能做你所做的一切想? Amedee Van Gasse 已经告诉过你。
猜你喜欢
  • 2015-06-26
  • 1970-01-01
  • 1970-01-01
  • 2016-11-23
  • 2014-12-16
  • 2021-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多