आप ब्राउज़र में प्रिंट आदेश का अपहरण नहीं कर सकते, लेकिन आप कीबोर्ड शॉर्टकट का अपहरण कर सकते हैं (हालांकि मैं यह सिफारिश नहीं होगा) तो कि जब उपयोगकर्ता ctrl/cmd + p
का उपयोग करके प्रिंट करता है, तो यह एक पीडीएफ पर रीडायरेक्ट करता है (या कुछ और करता है)। यह एक प्रयोज्यता माइनफील्ड है, हालांकि, आपको शायद एक बड़ा लिंक बनाना चाहिए जो "प्रिंट करने योग्य संस्करण" कहता है और इसे पीडीएफ (या उस पृष्ठ का एक संस्करण जो प्रिंट-फ्रेंडली सीएसएस का उपयोग करता है) से लिंक करता है।
एक और अच्छा विकल्प है कि आप अपनी सीएसएस फ़ाइल में print
मीडिया प्रकार के लिए कुछ नियमों को परिभाषित करना है, तो ब्राउजर उन लोगों को लागू करेगा जब उपयोगकर्ता प्रिंट करता है, बिना किसी हैक्स या जावास्क्रिप्ट के।
लेकिन चूंकि आपने पूछा कि मैंने प्रिंट कमांड के लिए एक छोटी शॉर्टकट अपहरण स्क्रिप्ट बनाई है। यह मैक कमांड कुंजी की वजह से एक तरह से मुश्किल है, लेकिन कुछ की तरह:
var cmd = false;
$(document).on('keydown', function(e) {
if(detectMacCommand(e.which)) {
cmd = true;
return;
}
// now detect print (ctr/cmd + p)
if (e.which == 80 && (e.ctrl || cmd)) {
e.preventDefault();
alert('redirect to PDF');
}
}).on('keyup', function(e) {
if(detectMacCommand(e.which)) {
cmd = false;
return;
}
});
function detectMacCommand(key) {
return ($.browser.mozilla && key == 224 ||
$.browser.opera && key == 17 ||
$.browser.webkit && (key == 91 || key == 93));
}
कि बहुत अच्छा है, लेकिन यह :) का उपयोग नहीं करते
आप इसे PHP के माध्यम से कर सकते हैं। जेएस नहीं http://webdesign.about.com/od/php/ht/force_download.htm जेएस में, आप पहले से ही फाइल हेडर भेज चुके हैं, इसलिए आप इस तरह की विदेशी चीजें नहीं कर सकते हैं। – Manishearth
1. यह फ़ाइल डाउनलोड करेगा, प्रिंट नहीं करेगा; 2. पीडीएफ लोड करने के बावजूद, यह इसे प्रिंट नहीं करेगा। – Googlebot
ओह, मैंने सवाल को गलत तरीके से पढ़ा। एक चीज जो काम कर सकती है (डुनो) पीडीएफ को आईफ्रेम में लोड कर रही है और आईफ्रेम के प्रिंट को कॉल कर रही है। लेकिन मुझे यकीन नहीं है कि डोम कितना संरक्षित है। – Manishearth