0

我正在使用fancybox2,我需要在pdf进入打印队列之前添加一些自定义函数意味着我需要fancybox打印回调(比如打印之前,打印之后),有人可以帮我吗?我尝试了 window.print() 回调,但在 fancybox print 的情况下这些回调不起作用,以下是我使用的示例

$(function(){
  var beforePrint = function() {
    alert("BEfore print")
    console.log('Functionality to run before printing.');
  };
  var afterPrint = function() {
    console.log('Functionality to run after printing');
    alert("After print")
  };

  if (window.matchMedia) {
    var mediaQueryList = window.matchMedia('print');
    console.log("Match media ..." + mediaQueryList)
    mediaQueryList.addListener(function(mql) {
      console.log("Mql matches ...."+ mql.matches)
      if (mql.matches) {
        beforePrint();
      } else {
        afterPrint();
      }
    });
  }

  window.onbeforeprint = beforePrint;
  window.onafterprint = afterPrint;
}());

这不适用于花式框打印,但在我们尝试窗口打印时(例如使用 ctrl + p 时)有效。当我们点击fancybox pdf打印图标时,我需要处理打印回调,请看附图在此处输入图像描述

下面是firefox的截图,看看firefox渲染fancy box pdf和crhome浏览器的区别,firefox使用pdf查看器。

在此处输入图像描述

在我在google上花了一些时间后,我发现fancybox embed pdf在不同的浏览器中呈现不同(见上图),firefox使用pdf查看器,chrome使用Adobe的查看器等,必须有一些东西可以通过javascript控制所有pdf打印

4

0 回答 0