- कंपनी में HTML का उपयोग करके कागज़/Excel पर हाथ से भरे जाने वाले फ़ॉर्मों को वेब-आधारित टूल के रूप में फिर से बनाकर उनकी जगह लेने का काम चल रहा है, इसलिए उसका यह सारांश तैयार किया गया है।
- यह बताता है कि वेब पेज प्रिंट होने पर कैसा दिखेगा, इसे नियंत्रित करने के लिए CSS की बुनियादी बातें और कुछ टिप्स व ट्रिक्स क्या हैं।
@page
@page एक CSS नियम है जो ब्राउज़र को वेबसाइट की प्रिंट सेटिंग्स के बारे में बताता है।
@page में DOM शामिल होता है, और वेब पर <html> एलिमेंट स्क्रीन के किनारों से सीमित होता है, लेकिन प्रिंट के समय यह @page से सीमित होता है।
@page सेटिंग्स लगभग उन सेटिंग्स से मेल खाती हैं जो Ctrl+P दबाने पर ब्राउज़र के प्रिंट डायलॉग में मिलती हैं।
@media print
print media query उपलब्ध है, जिसके ज़रिए ऐसे स्टाइल लिखे जा सकते हैं जो केवल प्रिंट के समय लागू हों।
- हेडर, विकल्प, यूज़र हेल्प टेक्स्ट आदि, जो प्रिंटआउट में नहीं दिखने चाहिए, उन पर
display:none जोड़ा जाता है।
चौड़ाई, ऊँचाई, मार्जिन, पैडिंग
- box model की समझ होना ज़रूरी है, और @page
margin: 0 सेट करने का कारण यह है कि मार्जिन को DOM एलिमेंट्स में संभालना अधिक पसंद किया जाता है।
- यह याद रखना आसान होता है कि
<html> पूरा भौतिक कागज़ घेरता है और मार्जिन DOM के अंदर होते हैं।
एलिमेंट की पोज़िशनिंग
- दस्तावेज़ डिज़ाइन करते समय एलिमेंट्स को सही जगह रखने के लिए उपयुक्त HTML/CSS का उपयोग किया जाता है।
- किसी विशेष आकार की स्टिकर शीट के लिए आयत बनानी हो, या खास लेबल लगे कागज़ पर डेटा प्रिंट करना हो, तो absolute positioning का उपयोग भी किया जा सकता है।
कई पेज वाले दस्तावेज़ और दोहराए जाने वाले एलिमेंट
- invoice जैसे टेबल डेटा वाले प्रिंट जनरेटर लिखते समय, अगर
<table> दूसरे पेज पर चला जाता है, तो ब्राउज़र अपने-आप <thead> को हर पेज के ऊपर कॉपी कर देता है।
- JavaScript का उपयोग करके टेबल को कई छोटी टेबलों में बाँटकर पेज बनाए जा सकते हैं।
पोर्ट्रेट/लैंडस्केप मोड
- उपयोगकर्ता चाहे तो @page नियमों को override कर सकता है।
- portrait और landscape मोड के लिए अलग-अलग
<style> एलिमेंट बनाए जा सकते हैं और JavaScript से उनके बीच स्विच किया जा सकता है।
डेटा स्रोत
- डेटा को पेज पर लाने के कई तरीके हैं; जैसे URL parameters में सारा डेटा पैक करना, या JavaScript से API के ज़रिए database records लाना।
contenteditable सेट करके उपयोगकर्ता को प्रिंट से पहले छोटे बदलाव करने की सुविधा दी जा सकती है।
GN⁺ की राय
- यह लेख वेब डेवलपर्स के लिए प्रिंट CSS लिखने के तरीके पर एक उपयोगी गाइड देता है। खासकर उन डेवलपर्स के लिए यह मददगार होगा जो वेब पेजों को भौतिक दस्तावेज़ों में बदलने वाले काम करते हैं।
- प्रिंट CSS अक्सर नज़रअंदाज़ किया जाने वाला विषय है, लेकिन कई कंपनियों में अब भी महत्वपूर्ण दस्तावेज़ प्रिंट करने पड़ते हैं, इसलिए यह ज्ञान मूल्यवान है।
- लेख में दिए गए तकनीकी दृष्टिकोण वास्तविक कार्यस्थलों में परखे और सत्यापित लगते हैं, और ये वास्तविक समस्याओं को हल करने के लिए व्यावहारिक समाधान देते हैं।
- CSS
@page नियम और @media print query का उपयोग वेब पेज प्रिंट करते समय कागज़ के आकार और मार्जिन को नियंत्रित करने के लिए महत्वपूर्ण है, और यह ऐसी बात है जिसे वेब डेवलपर्स को ज़रूर जानना चाहिए।
- यह लेख प्रिंट CSS की बुनियादी समझ से आगे जाकर यह भी दिखाता है कि इसे व्यवहार में कैसे लागू किया जाता है, और ठोस उदाहरणों व टिप्स के माध्यम से सिद्धांत और व्यवहार के बीच की दूरी कम करने में मदद करता है।
2 टिप्पणियां
अगली बार इस पर एक toy project करके देखना चाहूंगा।
Hacker News टिप्पणियाँ
व्यक्तिगत वेबसाइट पर पसंदीदा print styles के बारे में विवरण:
Pagedjs.org का उपयोग करके किताब संपादित करने का अनुभव:
प्रिंट CSS के लिए browser support की समस्याएँ:
CSS का उपयोग करके प्रिंट तैयार करने की आसानी:
प्रिंट के लिए browser support इतना खराब है कि native app बनानी पड़ती है:
CSS के इतिहास और मौजूदा स्थिति पर विचार:
HTML & CSS का उपयोग करके invoices और कुछ ebooks बनाने का तरीका:
browser के जरिए PDF बनाने के लिए इस्तेमाल किए गए paper-css का उल्लेख।
HTML/CSS का उपयोग करके प्रिंट सामग्री बनाने के फ़ायदे:
CSS skills का उपयोग करके social network profiles को प्रिंट फ़ॉर्मैट में उपलब्ध कराने का अनुभव: