2011-06-13 18 views
6

से प्रिंटिंग प्राथमिकताएं सेट करें तो ... मैं Google पर जो खोज सकता हूं, उससे मुझे अपनी प्रिंटिंग वरीयताओं को सेट करने के लिए जावास्क्रिप्ट का उपयोग करने का कोई तरीका नहीं मिल रहा है (पढ़ें: मार्जिन, ओरिएंटेशन, पाद लेख, आदि)।जेएस

मैं अपने मालिक को यह बताने वाला हूं कि वह जो करना चाहता है वह संभव नहीं है। मैं यह जांचना चाहता था कि आप इसे करने के लिए अच्छे लोगों को पसंद करेंगे। कृपया मुझे बताओ।

मैंने पाया कि एफएफ में आप उपयोगकर्ता की प्राथमिकताओं को सेट करने के लिए कुछ user_pref (कुंजी, वैल) सेटिंग्स का उपयोग कर सकते हैं, लेकिन यह मेरे उपयोगकर्ताओं के 90% से अधिक के लिए काम नहीं करता है। मैं ऐसा कुछ ढूंढ रहा हूं जो आईई (जितना संभव हो सके), एफएफ और क्रोम को कवर करेगा।

निंजा के उत्तर देने के लिए धन्यवाद।

+1

मैं कल्पना के किसी भी खिंचाव से एक वेब निंजा नहीं कर रहा हूँ और यह एक जे एस समाधान या तो क्या सीएसएस में प्रिंट स्टाइलशीट अन्य बातों के साथ पूरा करने के लिए माना जाता है नहीं है, लेकिन है कि नहीं? –

+1

टिमो में जोड़ना, सीएसएस http://www.javascriptkit.com/dhtmltutors/cssmedia.shtml के लिए प्रिंट मीडिया क्वेरी के उदाहरण के लिए इसे जांचें मूल रूप से, एक और स्टाइलशीट बनाएं और स्वयं को मुद्रित संस्करण की उपस्थिति को पूरी तरह से बदलने दें पृष्ठ। उदाहरण के लिए, मुझे कम स्याही का उपयोग करने के लिए मुद्रित प्रति प्राप्त करने के लिए आमतौर पर बॉडी बैकग्राउंड रंग को # एफएफ पर सेट करना पड़ता है और, बेहतर दिखता है। – mrk

+0

वास्तव में इस ऐड-ऑन http://jsprintsetup.mozdev.org/ सम्मान का उपयोग कर जावास्क्रिप्ट के माध्यम से संभावित सेट प्रिंटिंग गुण संभव है। –

उत्तर

11

तो ... पूरे दिन देखने के बाद, मुझे लगता है कि मुझे अपने प्रश्न का उत्तर मिला। संक्षेप में, जवाब यह है कि जेएस और/या सीएसएस आपको क्लाइंट के ब्राउज़र के डिफ़ॉल्ट पेज सेटअप को ओवरराइड करने की अनुमति नहीं देगा।

यहां मैंने कोशिश की है। यदि आप एक साधारण HTML फ़ाइल के साथ और खाली सिर बनाते हैं, और एक शरीर जिसमें केवल "टेस्ट" टेक्स्ट होता है, तो आप देख पाएंगे कि मैंने क्या परीक्षण किया है।

  1. प्रिंट स्टाइल शीट आपकी समस्या का समाधान नहीं कर सकते हैं। शरीर पर मार्जिन 0px 0px 0px 0px पर सेट करना फ़ाइल> पृष्ठ सेटअप पर क्लिक करने और अपने सभी मार्जिन को 0 पर सेट करने जैसा ही नहीं है। प्रिंट स्टाइल शीटर आपको विश्वास करना चाहेगा, वे अलग हैं। अपने लिए कोशिश करो। यही कारण है कि प्रिंट स्टाइल शीट्स आपकी समस्या का समाधान नहीं करते हैं।

  2. जेएस आपकी समस्या का समाधान नहीं कर सकता। यदि आप अपने द्वारा देखे गए प्रत्येक पृष्ठ को आपके स्थानीय जेएस गुणों में संशोधित करते हैं तो क्या आप छवि बना सकते हैं? प्रत्येक पृष्ठ को आपके स्थानीय प्रिंट सेटअप तक पहुंचने की अनुमति देने के लिए एक सुरक्षा उल्लंघन होगा, और इसकी अनुमति नहीं है। इस वजह से, जेएस आपकी समस्या का समाधान नहीं कर सकता है।

मुझे किसी को यहां जवाब देना अच्छा लगेगा और मुझे बताएं कि मैं गलत हूं। अन्यथा ... यह बेकार है ... और यह होने की जरूरत है। मेरे पास पुराने उपयोगकर्ताओं का एक टन है ... और उन्हें अपने पेज सेटअप में मार्जिन सेट करने के लिए एक दर्द है। इसके अलावा ग्राहक नहीं चाहते हैं कि हम पृष्ठ को दोबारा प्रतिक्रिया दें ताकि उन्हें इसकी आवश्यकता न हो। मैं एक चट्टान और एक कठिन जगह के बीच में हूँ।

6

आप सीएसएस के साथ पेज अभिविन्यास और मार्जिन सेट कर सकते हैं:

@page { 
    size: landscape; 
    margin: 10% 
} 

तुम भी <tfoot> तत्व का उपयोग करके प्रत्येक पृष्ठ के तल पर एक पाद लेख सेट कर सकते हैं।

संपादित करें: बीजेमिन द्वारा बताए गए अनुसार, यह आधे रास्ते का घर है। आप प्रिंटर वरीयताओं को वास्तव में नहीं बदल सकते हैं (वे प्रिंट पर क्लिक करते समय प्रिंट संवाद में दिखाई देते हैं)। इसके अलावा, आईई @page चयनकर्ता के समर्थन में गंभीर रूप से कमी कर रहा है, (यह देखने के लिए चारों ओर देखो कि आईई 9 ने इसका समर्थन किया है और कुछ भी नहीं मिला)। एक विकल्प के रूप में आप हमेशा अपने प्रिंट स्टाइलशीट में इसे शरीर पर लगाने का प्रयास कर सकते हैं।

body { 
    size: landscape; 
    margin: 10% 
} 

हालांकि मेरे सिर से मुझे यकीन नहीं है कि यह कितना प्रभावी है।

+1

जैत्सु, @page क्या करता है? मुझे @page पर कोई सीएसएस दस्तावेज नहीं मिल रहा है ... और सभी शैलियों जिन्हें मैं इसे लागू करने का प्रयास करता हूं, काम नहीं करते हैं। – frosty

+1

@page पेजेड मीडिया के लिए पृष्ठ तत्व है (यह केवल प्रिंटर है, AFAIK) - इसके लिए समर्थन बहुत अच्छा नहीं है - यह निश्चित रूप से किसी भी आईई में काम नहीं करेगा (मुझे 9 के बारे में पता नहीं है)। यह इस तरह की चीज़ के लिए डिज़ाइन किया गया है, लेकिन फिर भी आपको प्रिंटर की * सेटिंग्स को समायोजित करने की अनुमति नहीं दी जाएगी - प्रिंटर को भेजे गए पृष्ठ 'बॉक्स' का मार्जिन/पैडिंग (और जिस पर प्रिंटर के मार्जिन जोड़े जाते हैं)। – Beejamin

+1

ओह - लिंक शामिल करने के लिए: http://www.w3.org/TR/CSS2/page.html खोजना मुश्किल है, क्योंकि Google '@' चिह्न को स्ट्रिप करता है। – Beejamin

3

मुझे लगता है कि आप एचटीएमएल और सीएसएस में ऐसा करने की कोशिश कर रहे भाग्य से बहुत अधिक हैं। इस मुद्दे का एक बड़ा हिस्सा यह है कि प्रिंटर मार्जिन सभी प्रिंटर के प्रकार के लिए विशिष्ट होते हैं: अधिकांश प्रिंटरों में न्यूनतम मार्जिन होता है जो वे सेट कर सकते हैं (पृष्ठ को पकड़ने के लिए आवश्यक स्थान के बराबर, और सिर के बाएं/दाएं आंदोलन।

स्वीकार्य मार्जिन पेपर आकार के आधार पर भी भिन्न होंगे (मार्जिन आम तौर पर अधिकतम प्रिंटर स्वीकार किए जाने से छोटी शीट पर छोटा हो सकता है)। उदाहरण के लिए, यदि आप A4 पेपर को ए 4 प्रिंटर में लोड करते हैं, तो आप सेट कर सकते हैं जो मार्जिन आप ए 4 लोड करने से अलग होंगे।

सीएसएस, जावास्क्रिप्ट, या कुछ भी के माध्यम से, उस जानकारी में से कोई भी वेबपृष्ठ पर उपलब्ध नहीं है।

अब तक, जहां तक ​​कोई समाधान जाता है, पीडीएफ फाइलें आपको फ़ाइल में कुछ प्रिंटर डिफ़ॉल्ट सेटिंग्स एम्बेड करने की अनुमति देती हैं - एक्रोबैट प्रो आपको स्केलिंग विकल्प, प्रतियों की डिफ़ॉल्ट संख्या आदि निर्दिष्ट करने की अनुमति देगा। मुझे कोई फर्क नहीं पड़ता सट्टेबाजी कि फ़ाइल प्रारूप में अधिक संभावित सेटिंग्स उपलब्ध हैं जो एक्रोबैट का पर्दाफाश नहीं करता है।

आपके द्वारा उपयोग की जाने वाली सर्वर-साइड तकनीक के लिए बहुत सारे पूर्ण-विशेषीकृत पीडीएफ पीढ़ी के उपकरण हैं। अच्छे लोग आपको यूआरएल प्रदान करने की अनुमति देंगे, और पीडीएफ सामग्री में एचटीएमएल + सीएसएस प्रस्तुत करेंगे - जो पीढ़ी को कुछ हद तक स्वचालित करेगा। पीडीएफ पीढ़ी हालांकि बहुत सीपीयू गहन है, और यह उपयोगकर्ता के लिए निर्बाध नहीं होगी, या तो (और अधिकांश ब्राउज़रों के लिए पीडीएफ प्लगइन्स की आवश्यकता होगी)।

मुझे पता है कि यह आदर्श नहीं है, लेकिन यह वह एवेन्यू है जिसे मैं देखता हूं। सौभाग्य!

1

सीएसएस का उपयोग करने से आपको यह प्राप्त करने में मदद मिलेगी।

@page { 
    margin:0cm; 
}