2011-02-27 26 views
7

मैंने एक आईपैड/आईफोन एप्लीकेशन विकसित किया है जिसके लिए मैं लेनदेन खत्म करते समय नेटवर्क प्रिंटर पर रसीद प्रिंट करता हूं। मैंने एयरप्रिंट कार्यक्षमता को कुछ हद तक काम करने में कामयाब रहा है जिसमें मैं उचित रूप से दिखाई देने के लिए UIPrintInteractionController पॉपओवर प्राप्त कर सकता हूं, "प्रिंट" बटन पर क्लिक करें और फिर प्रिंटर सिम्युलेटर में परिणाम देखें। मेरे आवेदन की आवश्यकताओं के कारण, मैं पॉपओवर चरण को छोड़ने और लेनदेन को बंद करते समय स्वचालित रूप से रसीद प्रिंट करने की उम्मीद कर रहा हूं। दूसरे शब्दों में, अतिरिक्त बटन क्लिक किए बिना प्री-निर्दिष्ट नेटवर्क प्रिंटर को प्रिंट जॉब भेजना संभव है? क्या मुझे UIPrintInteractionController क्लास को विस्तारित करने का प्रयास करने की आवश्यकता है? यदि हां, तो क्या इस दृष्टिकोण के साथ किसी को भाग्य है?आईपैड/आईफोन - एयरप्रिंट पॉपओवर के बिना सीधे नेटवर्क प्रिंटर पर प्रिंटिंग

कोई अन्य वैकल्पिक अनुशंसा भी अच्छी होगी।

+0

क्या आपको इस प्रश्न के लिए कोई समाधान मिला है? –

+0

मैं भी उसी तरह की कार्यक्षमता की तलाश में हूं। क्या किसी ने इसे समझ लिया है। – Rajashekar

+0

आखिरकार @ राजशेखर, क्या आपको ऐसा करने का कोई तरीका मिला? –

उत्तर

1

UIPrintInteractionController कक्षा का उपयोग करके ऐसा करने का कोई तरीका नहीं है, यह मानक प्रिंट विकल्पों के साथ उपयोगकर्ता को प्रस्तुत करने के लिए डिज़ाइन किया गया है, और इस के आसपास होने का कोई ऐप स्टोर सुरक्षित तरीका नहीं है।

+0

और क्या ऐसा करने के लिए कोई ऐप स्टोर असुरक्षित तरीका है? –

-1

#import <BRPtouchPrinterKit/BRPtouchPrinterKit.h> 

BRPtouchPrinterKit प्रिंटर भाई अधिक जानकारी http://www.brother.com/product/dev/mobile/ios/

के लिए एक फ्रेमवर्क है एक एसडीके विशेष रूप से प्रिंटर

0

के इस प्रकार के लिए इस

- (IBAction)Print:(id)sender { 
    [self searchForPrinters]; 
    } 
- (void) searchForPrinters 
    { 

    if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_7_1) 
    { 
     UIPrinterPickerController *printPicker = [UIPrinterPickerController printerPickerControllerWithInitiallySelectedPrinter:nil]; 
    [printPicker presentAnimated:YES completionHandler: 
    ^(UIPrinterPickerController *printerPicker, BOOL userDidSelect, NSError *error) 
     { 
     if (userDidSelect) 
      { 
      //User selected the item in the UIPrinterPickerController and got the printer details. 

      [UIPrinterPickerController printerPickerControllerWithInitiallySelectedPrinter:printerPicker.selectedPrinter]; 

      //Here you will get the printer and printer details.ie, 
      // printerPicker.selectedPrinter, printerPicker.selectedPrinter.displayName, printerPicker.selectedPrinter.URL etc. So you can display the printer name in your label text or button title. 

      [btnSettingsPrint setTitle:printerPicker.selectedPrinter.displayName forState:UIControlStateNormal]; 

      NSURL *printerURL = printerPicker.selectedPrinter.URL; 

     } 
    }]; 
} 
} 

-(void)printYourItem :(NSData*)data 
{ 
if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_7_1) 
    { 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    UIPrinter *currentPrinterObj = [UIPrinter printerWithURL:[NSURL URLWithString:[defaults stringForKey:@"YouKeys"]]]; 

    UIPrintInteractionController *controller = [UIPrintInteractionController sharedPrintController]; 

    if(currentPrinterObj) 
    { 
     [controller printToPrinter:currentPrinterObj completionHandler:^(UIPrintInteractionController *printController, BOOL completed, NSError *error) 
     { 
      if(completed) 
      { 
      } 
      else 
      { 
       NSLog(@"FAILED! due to error in domain %@ with error code %u", error.domain, error.code); 
      } 
     }]; 
    } 
} 
} 
कोशिश है एक तरीका होता है
+0

अपने कोड को स्पष्टीकरण प्रदान करने पर विचार करें – arghtype

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