Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Printing a PDF with UIPrintInteractionController ios 5 works but in ios 6 doesnt work and crash my app

I have a problem with UIPrintInteractionController I send a pdf to print and with a devices with ios 5 when i press print button is send the file to the printer and works. but when I test on a devices with ios 6 I doesn't work and crash the app.

when the view of the UIPrintInteractionController presented on ios 6 this is the log:

Save\032in\032folder\032Aptana\032Rubles._ipp._tcp.local.:
   Get-Printer-Attributes failed:    Undefined error: 0
No document-format-supported attribute found or no supported formats
   found.
No media-col-database found in response from printer.
Defaulting to generic media size values.
No print-quality-supported attribute found.  Defaulting to normal
   quality.
No sides-supported attribute found.  Defaulting to single-sided.

Here is my Code: (self.myPDF is a NMutableSData type)

UIPrintInteractionController *controller = [UIPrintInteractionController sharedPrintController];

if  (controller && [UIPrintInteractionController canPrintData: self.myPDF] ) {



UIPrintInfo *printInfo = [UIPrintInfo printInfo];
    printInfo.outputType = UIPrintInfoOutputGeneral;
    printInfo.jobName = [NSString stringWithFormat:@"Coupon"];
    printInfo.orientation = UIPrintInfoOrientationPortrait;
printInfo.duplex = UIPrintInfoDuplexLongEdge;

    controller.printInfo = printInfo;
controller.showsPageRange =NO;

    controller.printingItem = self.myPDF;

    void (^completionHandler)(UIPrintInteractionController *, BOOL, NSError *) =
    ^(UIPrintInteractionController *printController, BOOL completed, NSError *error) {
        if (!completed && error) {

            UIAlertView *av = [[UIAlertView alloc] initWithTitle:@"Error." 
                                                         message:[NSString stringWithFormat:NSLocalizedString(@"An error occured while printing: %@", @"Printing error"), error]
                                                        delegate:nil 
                                               cancelButtonTitle:@"OK" 
                                               otherButtonTitles:nil, nil];

            [av show];
            [av release];
        }
    };

    [controller presentAnimated:YES completionHandler:completionHandler];
}

i dont have a AirPrint supported Printer but i used the handyPrint. Note: on iOS 6 it works printing with safari using handyPrint.

Anyone Knows what is wrong? =(

like image 526
moynardos Avatar asked Jun 20 '13 16:06

moynardos


People also ask

Why can't I print a document from my iPhone?

If you can't find the print option, check the app's User Guide or Help section. Not all apps support AirPrint. Tap Select Printer and choose an AirPrint-enabled printer. Choose the number of copies or other options, like which pages you want to print.


1 Answers

Test it with the AirPrint Printer Simulator that comes with Xcode. The problem might very well be in handyPrint not supporting new features in AirPrint.

like image 135
Cocoanetics Avatar answered Oct 16 '22 00:10

Cocoanetics