2015-05-08 5 views
5

में फ़ाइल प्रिंट करने के लिए आईपीपी (इंटरनेट प्रिंटिंग प्रोटोकॉल) या एलपीआर (लाइन प्रिंटर रिमोट) का उपयोग करें मेरी आवश्यकता किसी क्लाउड आधारित सेवा के बिना किसी एंड्रॉइड डिवाइस से फ़ाइल प्रिंट करना है।एंड्रॉइड

मैं इसे प्राप्त करने के लिए सक्षम किया गया है बस पोर्ट पर प्रिंटर का आईपी पता करने के लिए फ़ाइल भेजकर "रॉ" प्रिंट प्रोटोकॉल यानी इस्तेमाल करते हैं। यहाँ उस के लिए कोड का टुकड़ा है:

client = new Socket(ip,port); //Port is 9100 
byte[] mybytearray = new byte[(int) file.length()]; //create a byte array to file 
fileInputStream = new FileInputStream(file); 
bufferedInputStream = new BufferedInputStream(fileInputStream); 
bufferedInputStream.read(mybytearray, 0, mybytearray.length); //read the file 
outputStream = client.getOutputStream(); 
outputStream.write(mybytearray, 0, mybytearray.length); //write file to the output stream byte by byte 
outputStream.flush(); 
bufferedInputStream.close(); 
outputStream.close(); 

"रॉ" मुद्रण प्रोटोकॉल के साथ समस्या यह स्थिति प्रिंटर से वापस पाने के लिए कोई रास्ता नहीं है कि वहाँ है।

तो, मैं हाल ही में के बारे में IPP और लीडर पढ़ा जो हम स्थिति प्रिंटर से वापस प्राप्त कर सकते का उपयोग कर।

मैंने एंड्रॉइड का उपयोग करके उन्हें लागू करने का एक तरीका खोजने का प्रयास किया है लेकिन कोई सफलता नहीं मिली है। मैं पहले से ही this answer से गुजर चुका हूं लेकिन मुझे अपना समाधान खोजने में कोई सफलता नहीं मिली है।

अगर कोई मुझे एंड्रॉइड में आईपीपी या एलडीआर को कार्यान्वित करने के तरीके पर मार्गदर्शन कर सकता है तो यह वास्तव में सहायक होगा।

अग्रिम धन्यवाद!

+0

स्थिति किस तरह आप पढ़ सकते हैं करना चाहते हैं? आईपीपी एक सामान्य प्रतिक्रिया-स्थिति प्रदान करता है जो आईपीपी संचार से संबंधित है। आप प्रिंटर-ऑब्जेक्ट्स या जॉब-ऑब्जेक्ट्स से विशेषताओं को पढ़ सकते हैं। आप यह जांच सकते हैं कि नौकरी सबमिट की गई है या नहीं, यहां तक ​​कि नौकरी-राज्य 'पूरा' (= मुद्रित) होने तक प्रतीक्षा करें। –

+0

असल में मैं सिर्फ एक पुष्टि चाहता हूं कि सबमिट की गई नौकरी समाप्त हो गई है या नहीं, क्या प्रिंटर ने फ़ाइल मुद्रित की है या नहीं। ऊपर वर्णित मेरे वर्तमान परिदृश्य में, मुझे – Exception

+0

@ कोई भी स्थिति नहीं मिल सका, मैं एक पीडीएफ फ़ाइल मुद्रित करने के लिए अपना कोड आजमा रहा था लेकिन यह केवल बाइट कोड प्रिंट कर रहा है, न कि वास्तविक फ़ाइल डेटा, क्या आप कृपया मेरी मदद कर सकते हैं –

उत्तर

0

आप किसी भी Android-PrintService का उपयोग कर सकते हैं जो एक स्थानीय प्रिंटर-प्रोटोकॉल लागू करता है। आपको अपने आवेदन में आईपीपी लागू करने की आवश्यकता नहीं है। दुर्भाग्य से मौजूदा सेवा-ऐप्स सही काम नहीं कर रहे हैं। न तो सेटअप और न ही प्रिंटिंग काम जैसा कि मैं उम्मीद करता हूं (आईओएस प्रिंटिंग की तुलना में)।

यदि आप अभी भी आईपीपी को कार्यान्वित करना चाहते हैं तो यह question's answer पढ़ें।

IPP की
0

जनरल उपयोग:

  1. एक बार एक मुद्रण कार्य प्रिंटर प्रस्तुत किया गया है एक नौकरी-आईडी
  2. उपयोग Get-नौकरी-गुण-ऑपरेशन रिटर्न आदेश मौजूदा नौकरी राज्य प्राप्त करने के लिए
  3. प्रतीक्षा विशेषता काम राज्य जब तक 9 (अर्थ है 'पूरा')

रहे हैं के बराबर अन्य अंतिम नौकरी में कहा गया है आप के लिए जाँच करनी चाहिए: गर्भपात या

रद्द

आप ipptool (डेस्कटॉप उपयोग के लिए देशी) इस्तेमाल कर सकते हैं प्रोटोटाइप के लिए:

# ipptool -t -d job=482 ipp://192.168.2.113/ipp job.ipp 
{ 
OPERATION Get-Job-Attributes 
GROUP operation-attributes-tag 
ATTR charset attributes-charset utf-8 
ATTR language attributes-natural-language en 
ATTR uri printer-uri $uri 
ATTR integer job-id $job 
} 
+0

मुझे अभी भी समझ में नहीं आता कि मैं इसे एंड्रॉइड पर कैसे कार्यान्वित कर सकता हूं और मैं एंड्रॉइड-प्रिंट सेवा का उपयोग नहीं करना चाहता क्योंकि मुझे नहीं लगता कि यह आईपीपी या एलपीआर – Exception

+0

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