2012-01-17 15 views
6

पुस्तकालय/उपकरण उपयोग किया: 1) जैस्पर रिपोर्ट 2) iReport 3) जावाजैस्पर रिपोर्ट - कस्टम बारकोड पीढ़ी

मैं पहले ही अपनी रिपोर्ट के लिए कुछ मानक बारकोड उत्पन्न किए हैं, लेकिन इस बार, मैं कर रहा हूँ एक कस्टम बारकोड उत्पन्न करने की कोशिश कर रहा है, जिसके लिए मेरे पास एक फ़ॉन्ट फ़ाइल कस्टम-बारकोड.एटीएफ है। अभी तक, iReport 2 बारकोड पुस्तकालयों का समर्थन करता है - बारकोड 4 जे और बारबेक्यू, जो मुझे आवश्यक कस्टम बारकोड का समर्थन नहीं करता है। शुरू करने के लिए कोई विचार, कुछ नई लाइब्रेरी का उपयोग करने के बिना बहुत अधिक ओवरहेड (मैं पहले से ही बारकोड 4j का उपयोग कर रहा हूं)?

बीटीडब्ल्यू, मुझे पता है कि एक समान प्रश्न (custom barcode font) पहले से ही इस साइट पर मौजूद है।

+0

यदि आपके पास कस्टम-बारकोड.एटीएफ है, तो क्या यह रिपोर्ट में टेक्स्ट तत्व डालने और इस फ़ॉन्ट का उपयोग करने जैसा आसान है? – mdahlman

+0

mdahlman, मैंने iReport डिजाइनर के माध्यम से फ़ॉन्ट इंस्टॉल करके और एक टेक्स्ट फ़ील्ड को रिपोर्ट पर खींचकर पीडीएफएम्बेड संपत्ति को सेट करके पहले देखा। मेरी कोशिश पूरी नहीं हुई थी, लेकिन किसी भी तरह से यह समझ में नहीं आया। वैसे भी, मैं इसे फिर से कोशिश करूंगा और आपको वापस ले जाऊंगा। – bchetty

उत्तर

2

बस @ mdahlman के जवाब की कोशिश की और यह काम किया। मैंने barcode39 font (फ्री) और जैस्पर्सॉफ्ट बारबेक्यू का उपयोग करके "CODE123" मूल्य उत्पन्न किया। Sample Barcode

आकार सेट करना फ़ॉन्ट का उपयोग करना बहुत आसान नहीं है लेकिन नतीजा वही है। मैंने अपने एंड्रॉइड फोन पर बारकोड स्कैनर का उपयोग करके बारकोड सत्यापित किया (यह भी दृश्यमान रूप से समान देख सकता है)। यह मेरे लिए काम करने का कारण, शायद इसी कारण से @ bchetty का परीक्षण काम नहीं किया, क्योंकि Barcode39 में चेक-डिजिट नहीं है। डेटा में संलग्न एक अग्रणी और पिछला तारांकन (*) के अलावा यह 1-से-1 अनुवाद है। यदि आप एक बारकोड प्रकार उत्पन्न करने के लिए एक टीटीएफ का उपयोग करना चाहते हैं जिसमें चेक-डिजिट है तो आपको इसे एन्कोड करने के लिए एक फ़ंक्शन (आपके जैसा उल्लिखित बाहरी जार) की आवश्यकता होगी। बारकोड 3 को फ़ंक्शन की आवश्यकता नहीं है क्योंकि यह केवल "*" + V${data} + "*" है।

+0

मैंने आपका जवाब सत्यापित नहीं किया है, लेकिन मुझे पता है कि आपने जो कहा है वह सही है। तो, उत्तर के रूप में अपना जवाब चुनना। धन्यवाद। :) – bchetty

1

यह देखते हुए कि आपके पास कस्टम-बारकोड.एटीएफ है, इसे वास्तव में टेक्स्ट के रूप में माना जा सकता है। तो आपके कदम इस तरह हैं:

  1. कस्टम-बारकोड.एटीएफ के लिए iReport में एक फ़ॉन्ट एक्सटेंशन बनाएं।
  2. एक प्रासंगिक अभिव्यक्ति के साथ रिपोर्ट में एक टेक्स्ट फ़ील्ड बनाएं।
  3. टेक्स्ट फ़ील्ड के लिए फ़ॉन्ट को "कस्टम-बारकोड" (या जो भी आप अपना फ़ॉन्ट एक्सटेंशन कहते हैं) पर सेट करें। वांछित आउटपुट प्राप्त करने के लिए फ़ॉन्ट आकार के साथ खेलो।

बारकोड के लिए कस्टम फ़ॉन्ट का उपयोग करना एक हैक माना जा सकता है। लेकिन लचीलापन में इसकी कमी क्या है जो सादगी में बनती है।

+0

mdahlman, मेरे ग्राहक की आवश्यकताओं में बदलाव आया। तो, मैं इस पर काम नहीं कर सका। तो, देर से प्रतिक्रिया के लिए खेद है। वैसे भी, मैं इसके लिए एक जवाब चाहता था और इसलिए बक्षीस। मैंने अभी कोशिश की और यह काम किया। तो, उत्तर के लिए बहुत बहुत धन्यवाद। मैंने इस प्रश्न पर भी बक्षीस लगाने से पहले कोशिश की, लेकिन किसी भी तरह से मैं पूर्वावलोकन में बारकोड नहीं देख सका, कोज़ मैं HTML पूर्वावलोकन चाहता हूं। मैंने इसे पीडीएफ पूर्वावलोकन में बदल दिया और यह काम किया। :) – bchetty

+0

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

+0

बारकोड उत्पन्न करने के लिए फ़ॉन्ट का उपयोग करना वास्तव में एक हैक है (जैसा कि मैंने मूल रूप से उल्लेख किया है)। क्या होगा यदि आप पाठ को बोल्ड या इटैलिक बनाते हैं? इसका बारकोड के लिए कोई मतलब नहीं है। क्या होगा यदि HTML क्लाइंट में यह फ़ॉन्ट नहीं है (जो लगभग हमेशा सच होगा)?फिर आप एचटीएमएल में इसका इस्तेमाल नहीं कर सकते। एक छवि उत्पन्न करने के लिए एक बहुत साफ समाधान है। यही कारण है कि बारकोड 4 जे और बारबेक्यू और जेएक्सिंग ऐसा करते हैं। लेकिन यह एक अलग स्तर का काम है (जावा कोडिंग)। प्रारंभिक बिंदु को देखते हुए कि आपके पास एक .ttf है जो बारकोड उत्पन्न करने का दावा करता है ... तो आपको उसे टेक्स्ट फ़ील्ड पर लागू करने की आवश्यकता है। – mdahlman

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