Печать не работает на Ipad - PullRequest
       4

Печать не работает на Ipad

1 голос
/ 28 декабря 2010

мое приложение, хотя вызывается действие подачи бумаги, но ничего не печатается, и бумага выходит пустой .. Я использую следующий код для печати. ​​

  -(IBAction)printButtonAction:(id)sender{
 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

 NSString *documentsDirectory = [paths objectAtIndex:0];

 NSString *writableDBPath = [documentsDirectory stringByAppendingPathComponent:@"Preview.pdf"];

 NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:writableDBPath]];

 UIPrintInteractionController *controller = [UIPrintInteractionController sharedPrintController];
 UIPrintInfo *printInfo = [UIPrintInfo printInfo];
 printInfo.outputType = UIPrintInfoOutputGeneral;
 printInfo.jobName = [writableDBPath lastPathComponent];
 printInfo.duplex = UIPrintInfoDuplexLongEdge;
 controller.printInfo = printInfo;
 controller.showsPageRange = YES;
 controller.printingItem = data;

 void (^completionHandler)(UIPrintInteractionController *, BOOL, NSError *) =
 ^(UIPrintInteractionController *pic, BOOL completed, NSError *error) {

  if (!completed && error)
   NSLog(@"FAILED! due to error in domain %@ with error code %u",
                  error.domain, error.code);
 };


 UIViewPrintFormatter *viewFormatter = [documentView viewPrintFormatter];
    viewFormatter.startPage = 0;
    controller.printFormatter = viewFormatter;

 if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
  [controller presentFromBarButtonItem:printButton animated:YES
         completionHandler:completionHandler];
 } else {
  [controller presentAnimated:YES completionHandler:completionHandler];
 }



}

Спасибо

Deepika jain

1 Ответ

0 голосов
/ 22 марта 2011

Я думаю, что приведенный ниже код будет работать,

 -(IBAction)printButtonAction:(id)sender{
    float systemVersion = [[[UIDevice currentDevice] systemVersion] floatValue];

if (systemVersion>4.1) {

    NSData *myPdfData = [NSData dataWithContentsOfFile:pdfPath]; //check the value inside |myPdfData| and |pdfPath| is the path of your pdf. 
    UIPrintInteractionController *controller = [UIPrintInteractionController sharedPrintController];
    if (controller && [UIPrintInteractionController canPrintData:myPdfData]){
        controller.delegate = delegate; //if necessary else nil
        UIPrintInfo *printInfo = [UIPrintInfo printInfo]; 
        printInfo.outputType = UIPrintInfoOutputGeneral; 
        printInfo.jobName = [pdfPath lastPathComponent];    
        //printInfo.duplex = UIPrintInfoDuplexLongEdge; 
        controller.printInfo = printInfo;
        controller.showsPageRange = YES;
        controller.printingItem = myPdfData;    

        // We need a completion handler block for printing.
        UIPrintInteractionCompletionHandler completionHandler = ^(UIPrintInteractionController *printController, BOOL completed, NSError *error) {
            if(completed && error){
                NSLog(@"FAILED! due to error in domain %@ with error code %u", error.domain, error.code);
            }
        };

        [controller presentFromRect:rect inView:senderView animated:YES completionHandler:completionHandler];
    }else {
        NSLog(@"Couldn't get shared UIPrintInteractionController!");
    }
}   

Проверьте путь к PDF-файлу, который вы выбрали, я думаю, что вы пропустили / / после каталога DocumentsВы пытаетесь поставить точку останова и проверить путь, а затем проверить | данные |переменная для содержимого по указанному вами пути.Попробуйте и ответьте на ваши комментарии.:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...