2008-10-23 26 views
15

मैं एक वेब अनुप्रयोग के माध्यम से रिपोर्ट जैसे डेटा प्रिंटिंग के लिए विकल्पों का शोध कर रहा हूं। व्यवहार्य कुछ विकल्प पीडीएफ, एक्सेल एक्सएमएल, एक्सेल में एचटीएमएल डंपिंग, या सक्रिय पीडीएफ वेबग्राबर जैसे टूल का उपयोग कर रहे हैं। मुझे लगता है कि सवाल यह है कि, कुछ समाधान क्या हैं जो एक ब्राउज़र से प्रिंट पर नियंत्रण देते हैं (मेरे मामले में आईई) अभी तक एक बड़ा विकास समय नहीं है। हालांकि मुझे अपने साथ अनुभव नहीं है, मैंने पीडीएफ उत्पन्न करने के लिए कुछ भयंकर कोड देखा है।मैं वेब एप्लिकेशन से उन्नत प्रिंटिंग कैसे करूं?

जिन सुविधाओं को मैं विशेष रूप से ढूंढ रहा हूं वे उपयोगकर्ता हस्तक्षेप के बिना परिदृश्य या चित्र मुद्रित करना है। साथ ही, मूल स्टाइल पर नियंत्रण रखना वेब एप के मूल रूप/अनुभव को मुद्रित प्रारूप में अनुवाद करना महत्वपूर्ण है।

कोई सलाह (विशेष रूप से अनुभव से) की सराहना की जाती है।

उत्तर

11

जैसा कि मेरे पास asked about here already है और कठिन तरीके से पता चला है, आपको ब्राउज़र के भीतर पूरी तरह विश्वसनीय और सटीक प्रिंटिंग परिणाम नहीं मिलेंगे। भले ही यह एक इंट्रानेट एप्लिकेशन है जिसे आपसे वादा किया गया है केवल आईई 7 के साथ काम करना चाहिए, आईई 8 जल्द ही बाहर हो जाएगा और फिर फ़ायरफ़ॉक्स की अनुमति होगी और सीएसएस के आपके सावधान माइक्रोमैनेजमेंट को शून्य के लिए किया जाएगा (क्या मुझे कड़वा लगता है?)।

सबसे आगे देखने वाला समाधान बुलेट काटने और पीडीएफ उत्पन्न करने के लिए जाना है। आपके द्वारा उल्लिखित टूल अच्छे हैं। आपको iText और iTextSharp पर भी देखना चाहिए। एक बार जब आप इसे लटका लेंगे, तो पीडीएफ लेआउट करना एचटीएमएल और सीएसएस से ज्यादा कठिन नहीं है और आपको पता चलेगा कि परिणाम हर किसी के कंप्यूटर, हर किसी के ब्राउज़र और हर किसी के प्रिंटर पर सही तरीके से प्रिंट होंगे। मैं वर्तमान में iTextSharp के साथ काम कर रहा हूं (अभी तक समाप्त नहीं हुआ है, लेकिन अभी भी सीखना और प्रयोग करना)।

मुझे किसी पृष्ठ के भीतर से प्रिंट विकल्पों को नियंत्रित करने के विश्वसनीय तरीकों को नहीं मिला है, इसलिए पोर्ट्रेट से परिदृश्य में बदलने के लिए या मार्जिन को सेट या समायोजित करने या प्रिंट हेडर और पादर्स को बंद करने के लिए अपने उपयोगकर्ताओं पर भरोसा करना है, लंबे समय तक काम नहीं करते - आप उन्हें परेशान कर देंगे और अपने लिए अधिक सिरदर्द बनाएंगे जब वे निर्देशों का पालन नहीं कर सकते (या सिर्फ नहीं)।

"संबंधित प्रश्न" साइडबार बहुत उपयोगी है।मैं (: "आप नहीं कर सकते" दोनों जवाब है कि राशि के साथ): वेब पेज से प्रिंटर को नियंत्रित करने पर इन सवालों देखा

Programmatically Selecting Landscape Printing

Printing to a Specific Printer

+0

बस एक अपवित्र और कहने के लिए टिप्पणी iTextSharp महान है। मैंने भी बहुत सफलता के साथ इसका इस्तेमाल किया है। –

+0

वास्तव में मुझे फ़ायरफ़ॉक्स 3 आईई की तुलना में काफी बेहतर करने के लिए मिलता है। फ़ायरफ़ॉक्स 2 हालांकि बड़ा समय चूसना पड़ा। –

4

तृतीय पक्ष रिपोर्टिंग उपकरण की एक संख्या तुम भी मुद्रण के लिए विशिष्ट CSS stylesheets की स्थापना देख सकते हैं। इसके बारे में क्या अच्छा है कि आप उपयोगकर्ता को प्रदर्शित एक बाहरी वेब पेज ले सकते हैं, किसी भी फैंसी बैनर या अन्य स्याही होगिंग प्रकार छवियों को हटाने के लिए प्रारूपण को थोड़ा बदल सकते हैं, और उसके बाद स्क्रीन पर जो भी देखते हैं उसे प्रिंट करें।

कुछ साइटों के पास "प्रिंटर अनुकूल संस्करण" का लिंक होगा, लेकिन HTML शीर्षलेख में प्रदर्शन और प्रिंट स्टाइलशीट दोनों का संदर्भ भी होगा यदि उपयोगकर्ता पृष्ठ पर CTRL + P को बस मारने का निर्णय लेता है वे इस पर है।

+1

यह सही दृष्टिकोण है जब तक आप परिणामों को संरेखित करने के लिए फ़ॉर्म या कहीं भी बहुत सटीक और दोहराने योग्य प्रिंट लेआउट की तलाश नहीं कर रहे हैं। उन्होंने उपयोगकर्ता-चयन योग्य चित्र या परिदृश्य के बारे में भी पूछा और इस मार्ग के लिए उपयोगकर्ता को अपने प्रिंट सेटअप को समायोजित करने की आवश्यकता होती है, जो एक स्केची विचार है। – CMPalmer

+0

इसे देखें: http://stackoverflow.com/questions/37162/how-do-i-make-an-html-page-print-in-landscape-when-the-user-selects-print – CMPalmer

1

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

वास्तविक पीडीएफ और एक्सेल के लिए मैंने Aspose.com से नियंत्रण का उपयोग किया है।

+0

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

+0

हाँ, लेकिन मेरे सीईओ को यह पसंद नहीं है। वह 'प्रिंट' बटन पर क्लिक करने के बाद रिपोर्ट प्रिंट को पसंद करता है। – Salamander2007

3

मैं का इस्तेमाल किया है और iTextSharp के साथ भाग्यशाली रहे एक सी # आवेदन में। यह काम का एक सा लगता है लेकिन यह सब समझ में आता है अगर आप ग्राफिक्स अनुभव है और पीडीएफ वास्तव में अच्छा लग सकता है (और अच्छी तरह से मुद्रित)।

http://itextsharp.sourceforge.net/

आप कोड भयंकर के लिए नहीं पीडीएफ उत्पन्न करने के लिए चाहते हैं, तो बस अच्छा पीडीएफ कोड लिखने के लिए सुनिश्चित करें! उदाहरण के लिए इन-स्मृति वर्गों है कि आप (लेगो की तरह) गठबंधन वस्तुओं है कि पीडीएफ पर जाना होगा प्रतिनिधित्व करने के लिए बहुत से वास्तव में मॉड्यूलर कोड लिखने। इन वस्तुओं को सिर्फ यह जानने की आवश्यकता होगी कि पीडीएफ में खुद को कैसे आकर्षित किया जाए। केवल IE के लिए

1

काम करता है:

http://www.meadroid.com/scriptx/index.asp

जो लोग माइक्रोसॉफ्ट के इंटरनेट एक्सप्लोरर ब्राउज़र चल क्लाइंट और सर्वर कंप्यूटर से एचटीएमएल दस्तावेज़ों को मुद्रित करने की आवश्यकता के लिए पूर्ण नियंत्रण।

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

1

दूसरों ने जो कहा है उसे सेकेंड करना, आप कभी भी ब्राउज़र को मुद्रित करने के लिए कभी भी नहीं जा रहे हैं। अनुभव से बात हो रही है, प्रिंट मीडिया प्रकार सीएसएस लगता है कि यह काम करेंगे, लेकिन यह वास्तव में काम किया हो जाता है कभी नहीं - खासकर यदि आप एक से अधिक ब्राउज़र में काम करने की जरूरत है (और के बाद से मैं के रूप में IE के कई संस्करण शामिल कर रहा हूँ विभिन्न ब्राउज़रों, मुझे लगता है कि सभी वेब साइटों खत्म होने की जरूरत है।)

मुझे लगता है कि सबसे अच्छा तरीका है वास्तव में गतिशील रूप से मक्खी पर पीडीएफ़ निर्माण करना है। एक पीडीएफ पैकेज को खोजें/अपने मंच के लिए बर्दाश्त है और इसके साथ चला सकते हैं। मेरा विश्वास करो, आपको खुशी होगी कि आपने किया था।

0

यह इस बात पर निर्भर करता है कि आपके अपेक्षित ग्राहक आधार ज्ञात हैं या अज्ञात हैं। यदि आप प्रिंट करने योग्य दस्तावेजों को उत्पन्न करने के लिए 'किसी को भी' अनुमति देना चाहते हैं, तो मैं दूसरों से सहमत हूं कि पीडीएफ मार्ग नीचे जाने के लिए एक अच्छा है।

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

यह रिपोर्ट और गतिशील पंक्ति डेटा के लिए थोड़ा सा ट्रिकियर है , लेकिन किया जा सकता है।

वास्तव में प्रिंटिंग के लिए - यदि आप अपना उपयोगकर्ता आधार ज्ञात करते हैं तो एक एप्लिकेशन बना रहे हैं (उदाहरण के लिए एक कार्यालय वातावरण) तो आप BarTender जैसे लेबल प्रिंटिंग एप्लिकेशन पर विचार कर सकते हैं। आप या तो एपीआई के माध्यम से वेब सर्वर कॉल प्रिंट जॉब्स कर सकते हैं या बारटेंडर एप्लिकेशन को नई नौकरियों के लिए ऐप मतदान कर सकते हैं। वेब अनुप्रयोगों के लिए सुविधाजनक जहां आप साइट पर 'प्रिंट' हिट करना चाहते हैं और प्रिंटर प्रिंटिंग शुरू कर रहा है (कोई अन्य उपयोगकर्ता हस्तक्षेप नहीं) क्योंकि सर्वर वास्तव में प्रिंटिंग कर रहा है, क्लाइंट नहीं।

0

मुख्य रूप से जिस तरह से मैं इस के साथ निपटा साझा करने के लिए, लेकिन यह भी एक और विकल्प ...

मैं एक 3 पार्टी ग्रिड कि एक्सेल एक्सएमएल निर्यात उपयोग कर रहा था की पेशकश करने के लिए। इसे मेरे लिए काम करने के लिए, मैंने एक्सएसएलटी का इस्तेमाल किया और प्रिंट कोड को इंजेक्ट करने के लिए एक्सएसएलटी को ट्विक करने के लिए कुछ कोड। यह पीडीएफ जितना शक्तिशाली नहीं है, मुझे यकीन है, लेकिन यह एक सुंदर सभ्य समझौता था जिस पर प्रति पृष्ठ अधिक अनुकूलन की आवश्यकता नहीं थी।

तो, बुनियादी में समाधान एक्सेल एक्सएमएल प्रारूप में निर्यात करना है और पृष्ठ उन्मुखता, स्केलिंग, और जो भी आप चाहें टैग के लिए टैग इंजेक्ट करना है। आप मूल एक्सेल शीट से शुरू कर सकते हैं और एक्सएमएल के रूप में सहेज सकते हैं, जिससे आप चाहते हैं कि ट्वीक्स बनाते हैं। फिर आप स्रोत पढ़ते हैं और पता लगाते हैं कि एक्सेल ने इसे कैसे किया। मैं कोई उपयोगी दस्तावेज नहीं ढूंढ पाया।

संबंधित मुद्दे