2012-03-23 20 views
22

मुझे एंड्रॉइड टैबलेट के लिए एक ऐप विकसित करना है जो ब्लूटूथ प्रिंटर को प्रिंटिंग फाइलों की मांग करता है। ब्लूटूथ पर प्रिंटिंग मेरे ऐप की सबसे महत्वपूर्ण विशेषताओं में से एक है। दुर्भाग्यवश, इस विषय के बारे में बहुत सारी जानकारी नहीं है इसलिए मैं सलाह मांगना चाहता हूं।एंड्रॉइड: ब्लूटूथ प्रिंटिंग

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

SDKs/पुस्तकालय

  • Sybase-iAnywhere-Blue-SDK-for-Android: वाणिज्यिक एसडीके कि बीटी प्रोफाइल का एक बहुत का समर्थन करता है। एक बड़ी कंपनी द्वारा विकसित (अच्छा समर्थन I अनुमान)। मुझे इस बारे में बहुत सारी जानकारी नहीं मिली है। इस एसडीके का उपयोग करने के तरीके पर कुछ दस्तावेज, एपीआई या उदाहरण हैं? किसी को भी डेमो संस्करण डाउनलोड करने का तरीका पता है? (लिंक पिछली बार मैंने कोशिश की प्रतीत होता है)
  • आईप्रिंट एसडीके: वाणिज्यिक एसडीके। उनकी वेबसाइट पर कुछ उदाहरण लेकिन कुछ भी नहीं।
  • ज़ेब्रालिंक: केवल ज़ेबरा प्रिंटर के लिए (स्वाभाविक रूप से)। अन्य निर्माताओं के पास शायद उनके प्रिंटर के लिए एपीआई भी हैं।

Google Play एप्लिकेशन

  • PrinterShare: वाणिज्यिक (प्रीमियम कुंजी)
  • ब्लूटूथ स्मार्ट छपाई: नि: शुल्क और हल्के। ब्लूटूथ प्रिंटर को मुद्रित करने का दावा।

आदर्श रूप से मैं एक विशिष्ट ब्रांड या प्रिंटर मॉडल से बंधना नहीं चाहता हूं। अब प्रश्न:

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

आपकी मदद के लिए अग्रिम धन्यवाद;)

+0

मैं ** PrinterShare ** एप्लिकेशन की पुष्टि कर सकते हैं - https://play.google.com/store/apps/details?id=com.dynamixsoftware.printershare - यह मेरा HP के लिए मेरे डिवाइस पर काम करता ऑफिसजेट 100 मोबाइल प्रिंटर। मुझे Google Play में ** ब्लूटूथ स्मार्ट प्रिंटिंग ** ऐप नहीं मिला, हालांकि। क्या आपके पास एक लिंक है? –

उत्तर

11

Star Micronics ब्लूटूथ के माध्यम से एंड्रॉयड मुद्रण के लिए SDK (और साथ ही ईथरनेट और यूएसबी है)। आप इसे यहां डाउनलोड कर सकते हैं: http://www.starmicronics.com/support/SDKDocumentation.aspx

जैसा कि आपने बताया है, आप समय पर इस बिंदु पर मूल रूप से प्रिंट नहीं कर सकते हैं, इसलिए आपके द्वारा प्राप्त वैकल्पिक समाधान आज आपके विकल्प हैं।

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

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

स्टार के साथ काम करने के लिए एक महान कंपनी है क्योंकि आप अपने विकास के लिए उपयोग करने के लिए अपनी पसंद का एक मुफ्त डेमो प्रिंटर प्राप्त कर सकते हैं।

यदि आप इस तरह से चुनते हैं, तो आप प्रिंटर को कमांड के साथ सादा पाठ भेज सकते हैं। एपीआई डेटा को कनवर्ट करने में संभालता है जो प्रिंटर समझ सकता है।

+1

क्या स्टार माइक्रोनिक्स एक लाइसेंस मुक्त एसडीके है। – blackjack

+0

क्या STARIOSDK सभी प्रकार की फाइल प्रिंट करने के लिए सहायक हो सकता है। – blackjack

+1

क्या आप जानते हैं कि एसडीके ब्लूटूथ प्रिंटर के अन्य बनाने के साथ काम करता है? –

1

ब्लू टूथ प्रिंटर को प्रिंट करने की संभावना प्रिंटर के मॉडल पर निर्भर करती है जिसका आप उपयोग करने का प्रयास कर रहे हैं।

उदाहरण के लिए, मैं CITIZEN CMP-10BT प्रिंटर का उपयोग करता हूं जिसे बाइट्स के विशिष्ट अनुक्रम भेजकर नियंत्रित किया जा सकता है जिसे एंड्रॉइड एपीआई का उपयोग करके आसानी से किया जा सकता है। मैंने इसके शीर्ष पर एक ढांचा भी बनाया।

समस्या केवल इस तथ्य में निहित है कि आप यह सुनिश्चित नहीं कर सकते कि कौन से प्रिंटर मॉडल अंतिम उपयोगकर्ताओं द्वारा उपयोग किए जाएंगे, इसलिए कुछ अंतिम एसडीके निश्चित रूप से बहुत जरूरी होंगे।

+0

आपके उत्तर के लिए धन्यवाद, एलेक्स। जिज्ञासा से, "ढांचा" है जिसे आप ओपन सोर्स का उल्लेख करते हैं। और, यदि हां, तो उसे कहां मिल सकता है? धन्यवाद। –

+0

@ जोश पिंटर: दुर्भाग्य से, नहीं। यह वाणिज्यिक प्रोजेक्ट का एक हिस्सा है, इसलिए कोई "जगह" नहीं हो सकती है। यदि आप अभी भी रुचि रखते हैं, तो आप मुझे एक ईमेल लिख सकते हैं (प्रोफ़ाइल में पता देखें) और मैं प्रिंटिंग के लिए आवश्यक कुछ कोड पार्ट्स प्रदान कर सकता हूं। –

+0

धन्यवाद, एलेक्स। आपका ईमेल पता नहीं मिला लेकिन मुझे लगता है कि मुझे वह मिला है जो मैं ढूंढ रहा हूं, अभी के लिए। हालांकि, मदद करने के लिए आपके प्रस्ताव की सराहना करता हूं। –

1

आप इस घटक को डाउनलोड कर सकते हैं: https://components.xamarin.com/view/ocpp-thermal-printer-usb यह अधिकांश यूएसबी और ब्लूटूथ जेनेरिक प्रिंटर में एक आकर्षण की तरह काम करता है। मैं सबसे सामान्य एएससी कमांड भेजने के लिए कक्षा को क्रिएट करता हूं। उपयोग: outerInstance.mService.Write (modes.pordefecto());

public class modes 
{ 
    public static byte[] condensado() 
    { 
     byte[] cmd = new byte[3]; 
     cmd[0] = 0x1b; 
     cmd[1] = 0x21; 
     cmd[2] |= 0x01; 

     return cmd; 
    } 

    public static byte[] pordefecto() 
    { 
     byte[] cmd = new byte[3]; 
     cmd[0] = 0x1b; 
     cmd[1] = 0x21; 
     cmd[2] |= 0x00; 
     return cmd; 
    } 

    public static byte[] negrita() 
    { 
     byte[] cmd = new byte[3]; 
     cmd[0] = 0x1b; 
     cmd[1] = 0x21; 
     cmd[2] |= 0x08; 
     return cmd; 
    } 

    public static byte[] lineamenor() 
    { 
     byte[] cmd = new byte[3]; 
     cmd[0] = 0x1b; 
     cmd[1] = 0x33; 
     cmd[2] |= 0x14; 
     return cmd; 
    } 

    public static byte[] cancelalinea() 
    { 
     byte[] cmd = new byte[2]; 
     cmd[0] = 0x1b; 
     cmd[1] = 0x32; 
     return cmd; 
    } 

    public static byte[] centra() 
    { 
     byte[] cmd = new byte[3]; 
     cmd[0] = 0x1b; 
     cmd[1] = 0x61; 
     cmd[2] |= 0x01; 
     return cmd; 
    } 

    public static byte[] quitacentro() 
    { 
     byte[] cmd = new byte[3]; 
     cmd[0] = 0x1b; 
     cmd[1] = 0x61; 
     cmd[2] |= 0x00; 
     return cmd; 
    } 

    public static byte[] codepage() 
    { 
     byte[] cmd = new byte[5]; 
     cmd[0] = 0x1f; 
     cmd[1] = 0x1b; 
     cmd[2] = 0x1f; 
     cmd[3] |= 0xfe; 
     cmd[4] |= 0x01; 
     return cmd; 
    } 

    public static byte[] latino() 
    { 
     byte[] cmd = new byte[5]; 
     cmd[0] = 0x1f; 
     cmd[1] = 0x1b; 
     cmd[2] = 0x1f; 
     cmd[3] |= 0xff; 
     cmd[4] |= 0x12; 
     return cmd; 
    } 
    public static byte[] logo() 
    { 
     byte[] cmd = new byte[4]; 
     cmd[0] = 0x1c; 
     cmd[1] = 0x70; 
     cmd[2] = 0x01; 
     cmd[3] |= 0x00; 

     return cmd; 
    } 
} 
संबंधित मुद्दे