Распечатать PDF файл на iphone или ipad - PullRequest
10 голосов
/ 25 марта 2011

Я прикрепил файл к письму, использующему этот код.

[mail addAttachmentData:[myView PDFData] mimeType:@"application/pdf" fileName:@"name.pdf"];

Как я могу сделать то же самое для печати файла, мне нужно напечатать это [myView PDFData].

Я нашел только это для печати:

NSString *PDFFileWithName = [[NSBundle mainBundle] pathForResource:@"name" ofType:@"pdf"];

NSData *dataFromPath = [NSData dataWithContentsOfFile:PDFFileWithName];

Спасибо

Ответы [ 4 ]

6 голосов
/ 25 марта 2011

Вы должны прочитать Руководство по рисованию и печати для iOS .Свойство printingItem UIPrintInteractionController можно установить равным NSData PDF.

Обновление для добавленного кода

значение dataFromPath должно быть равно [myView PDFData], хотя я бы порекомендовал изменить имя переменной, как только она заработает.

NSData *dataFromPath = [myView PDFData];
4 голосов
/ 24 февраля 2016

напишите код ниже и проверьте его

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];
3 голосов
/ 03 августа 2017

Полный код для печати 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];
2 голосов
/ 25 марта 2011

Размещена неправильная ссылка ранее - это должно помочь!

Блог - Печать в iOS - Подробная информация и включает учебник по печати PDF

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