2011-02-09 7 views
5

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

रिपोर्ट के लिए, यह लगभग 50% प्रवाह पाठ (सहित समीकरण), 30% तालिकाओं और 20% चार्ट से बना है। प्रवाह पाठ भाग इसे थोड़ा अधिक चुनौतीपूर्ण बनाता है, क्योंकि उचित लाइन तोड़ना होगा।

अब तक, मैं निम्नलिखित दृष्टिकोण की कोशिश की है - कि उन्हें इतना संभव नहीं बनाने के लिए अपने स्वयं के कमियों के साथ प्रत्येक:

  • सिल्वरलाइट की अपनी PrintDocument: तकनीकी रूप से इसकी दो प्रमुख चिंताएं हैं। एक के लिए, काम करने के लिए पेज ब्रेक प्राप्त करना और उचित लेआउट के साथ यूआईएलमेंट्स प्रिंट करना एक गंदे हैकबॉज का थोड़ा सा है और समझौता से भरा है; शुक्र है कि वह हिस्सा है जिसे मैंने अभी तक काम करने में कामयाब रहा है। हालांकि, PrintDocument कक्षा हमेशा उन्हें भेजने से पहले सभी दृश्यों को बिटमैप्स के रूप में प्रस्तुत करती है; यह बहुत मजेदार नहीं है, अगर कोई पीडीएफ प्रिंटर का उपयोग करता है और उम्मीद करता है कि अभी भी टेक्स्ट में खोज/चयन करने में सक्षम होना चाहिए। "सिल्वरलाइट और परे" में डेविड पोल का दृष्टिकोण [1] सहायक नहीं था और साथ ही यह मूल रूप से एक ही दृष्टिकोण का पालन करता है और इस तरह बहुत ही समान मुद्दों से ग्रस्त है।

  • silverPDF [2]: एक साधारण रूप से प्रलेखित लाइब्रेरी जिसे मैन्युअल रूप से अधिकांश लेआउट करने की आवश्यकता होती है (कम से कम दृष्टिकोण ने मुझे सिल्वरलाइट के लेआउट इंजन का पुन: उपयोग करने की अनुमति दी)। अब तक, मुझे पैराग्राफ मापने के लिए (उदाहरण के लिए) कोई रास्ता नहीं दिखता है और लंबे प्रवाह के साथ एकमात्र नमूना लेआउट आयताकारों के लिए हार्डकोडेड पूर्ण मानों का उपयोग करता है। इसके अलावा, विकासशील पार्टी निष्क्रिय होने लगती है।

व्यक्तिगत रूप से, अब मैं पूरी तरह से अलग रणनीति का पालन करने के बारे में सोच रहा हूं: बस HTML दस्तावेज़ जेनरेट करें। लेकिन मैं उम्मीद कर रहा था कि यहां समुदाय के ऊपर दो दृष्टिकोणों के लिए संकेत हो सकते हैं या अन्य अच्छे दृष्टिकोणों को जान सकते हैं।

अग्रिम धन्यवाद, ~ मैनी

उत्तर

5

आप क्लाइंट पर रिपोर्ट उत्पन्न करने की जरूरत है, या आप सर्वर यह उत्पन्न करने के लिए प्राप्त कर सकते हैं करते हैं? यदि आप इसे सर्वर पर उत्पन्न कर सकते हैं तो आपके विकल्प बेहतर हैं। निजी तौर पर, मुझे लगता है कि फिलहाल सिल्वरलाइट प्रिंटिंग काम रिपोर्ट के उपयोग के लिए बहुत खराब है (प्रिंटर को प्रत्येक पृष्ठ को वेक्टर की बजाय रास्टर के रूप में भेजना, जिसके परिणामस्वरूप नेटवर्क के माध्यम से संभावित डेटा की भारी मात्रा में डेटा और कम प्रिंटिंग गुणवत्ता आउटपुट)। मैंने पाया है कि सर्वर पर पीडीएफ उत्पन्न करने के लिए सबसे अच्छी रणनीति है (आपको एक रिपोर्टिंग इंजन का लाभ उठाने में सक्षम बनाता है), और इसे अपने एप्लिकेशन में प्रदर्शित करें। कुछ वाणिज्यिक उत्पाद भी हैं (जैसे टेलीरिक की सिल्वरलाइट रिपोर्ट व्यूअर, रिपोर्ट शार्प शूटर, या यहां तक ​​कि फर्स्ट फ़्लोर सॉफ्टवेयर के दस्तावेज़ टूलकिट)। यदि ग्राहक पक्ष समाधान वास्तव में आवश्यक है, तो शायद इनमें से एक सबसे अच्छा विकल्प हो सकता है (हालांकि प्रिंटिंग गुणवत्ता अभी भी खराब होगी)। ध्यान दें कि सिल्वरलाइट 5 को वेक्टर प्रिंटिंग के लिए समर्थन होना चाहिए, लेकिन यह रिलीज से 6 महीने या उससे अधिक दूर है। फिर भी एक और विकल्प पीट ब्राउन और डेविड पोल का ओपन सोर्स रिपोर्टिंग फ्रेमवर्क है: http://silverlightreporting.codeplex.com/

यदि आप पीडीएफ के रूप में सर्वर पर रिपोर्ट उत्पन्न करने और इसे अपने आवेदन में प्रदर्शित करने का विकल्प लेना चाहते हैं, तो मैंने यहां ऐसा करने पर एक लेख लिखा है: http://www.silverlightshow.net/items/Building-a-Silverlight-Line-Of-Business-Application-Part-6.aspx। यह ओओबी अनुप्रयोगों के लिए काम नहीं करता है, लेकिन मेरी पुस्तक (सिल्वरलाइट 4 के साथ प्रो बिजनेस एप्लीकेशन) के साथ स्रोत कोड करता है: apress.com/book/view/9781430272076।

आशा है कि इससे मदद मिलती है ...

क्रिस एंडरसन

+0

मुझे सिल्वरलाइट रिपोर्टिंग की दिशा में इंगित करने के लिए धन्यवाद। मैं यह देखने की कोशिश करूंगा कि यह मुझे कितना दूर कर सकता है :-) मैं एक या दो दिन में वापस देखूंगा। "क्लाइंट साइड पर प्रिंटिंग" चीज कुछ हद तक कठिन है, लेकिन पत्थर, आवश्यकता में पूरी तरह से नक्काशीदार नहीं है। – Manny

+0

कोई चिंता नहीं मैनी। यह देखने के लिए तत्पर हैं कि यह कैसा चल रहा है। –

+0

वास्तव में, परिस्थितियों पर विचार करते हुए, सिल्वरलाइट रिपोर्टिंग काफी अच्छी तरह से चला गया। लेकिन दिन के अंत में, एसएल 4 की प्रिंटिंग क्षमताओं (या इसकी कमी) अभी भी मध्यम औसत परिणाम (rastarized, आदि) उत्पन्न करते हैं। हम संभवतः एक विकल्प खोजने की कोशिश करेंगे (या तो एक अलग प्रारूप जैसे एचटीएमएल या इसे एक अलग, अधिक सक्षम वातावरण में उत्पन्न करें) हालांकि, यदि समय परमिट है। – Manny

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