Print PDF file on iphone or ipad

后端 未结 4 1381
北海茫月
北海茫月 2021-02-20 14:47

I attached a file to the mail I am using this code.

[mail addAttachmentData:[myView PDFData] mimeType:@\"application/pdf\" fileName:@\"name.pdf\"];
相关标签:
4条回答
  • 2021-02-20 14:55

    Full code to print pdf

    UIPrintInteractionController *pc = [UIPrintInteractionController
                                            sharedPrintController];
        UIPrintInfo *printInfo = [UIPrintInfo printInfo];
        printInfo.outputType = UIPrintInfoOutputGeneral;
        printInfo.orientation = UIPrintInfoOrientationPortrait;
        printInfo.jobName =@"Report";
    
        pc.printInfo = printInfo;
        pc.showsPageRange = YES;
        pc.printingItem = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"https://test.com/Print_for_Client_Name.pdf"]];
        // You can use here image or any data type to print.
    
    
    UIPrintInteractionCompletionHandler completionHandler =
    ^(UIPrintInteractionController *printController, BOOL completed,
      NSError *error) {
        if(!completed && error){
            NSLog(@"Print failed - domain: %@ error code %ld", error.domain,
                  (long)error.code);
        }
    };
    
    
    [pc presentFromRect:CGRectMake(0, 0, 300, 300) inView:self.view animated:YES completionHandler:completionHandler];
    
    0 讨论(0)
  • 2021-02-20 15:01

    Posted the wrong link earlier - this one should help!

    Blog - Printing in iOS - Goes into great detail and includes a tutorial on Printing PDFs

    0 讨论(0)
  • 2021-02-20 15:06

    write below code and check it

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *pathFolder = [NSString stringWithFormat:@"%@",pdfFileName];
    NSString *path = [[paths objectAtIndex:0] stringByAppendingPathComponent:pathFolder];
    NSURL *targetURL = [NSURL fileURLWithPath:path];
    
    UIPrintInteractionController *pc = [UIPrintInteractionController sharedPrintController];
    UIPrintInfo *printInfo = [UIPrintInfo printInfo];
    printInfo.outputType = UIPrintInfoOutputGeneral;
    printInfo.orientation = UIPrintInfoOrientationPortrait;
    printInfo.jobName =@“Print”;
    printInfo.duplex = UIPrintInfoDuplexLongEdge;
    
    pc.printInfo = printInfo;
    pc.showsPageRange = YES;
    pc.printingItem = targetURL;
    
    UIPrintInteractionCompletionHandler completionHandler =
        ^(UIPrintInteractionController *printController, BOOL completed,
          NSError *error) {
         if(!completed && error){
             NSLog(@"Print failed - domain: %@ error code %ld", error.domain, (long)error.code);
         }
    };
    [pc presentFromRect:shareButton.frame inView:self.view animated:YES completionHandler:completionHandler];
    
    0 讨论(0)
  • 2021-02-20 15:11

    You should read through the Drawing and Printing Guide for iOS. The printingItem property of UIPrintInteractionController can be set to the NSData of a PDF.

    Update for added code

    The value of dataFromPath should be equal to [myView PDFData] although I would recommend changing the variable name once you get it working.

    NSData *dataFromPath = [myView PDFData];
    
    0 讨论(0)
提交回复
热议问题