私は 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 がファンシー ボックスの PDF を Chrome ブラウザとは異なる方法でレンダリングする方法を確認してください。Firefox は PDF ビューアを使用します。
Google でしばらく過ごした後、fancybox 埋め込み pdf のレンダリングがブラウザーによって異なることがわかりました (上記の添付画像を参照)。firefox は pdf ビューアーを使用し、chrome は Adobe のビューアーを使用します。