10
votes

Imprimer le fichier PDF sur iPhone ou iPad

J'ai joint un fichier au courrier que j'utilise ce code.

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

NSData *dataFromPath = [NSData dataWithContentsOfFile:PDFFileWithName];


0 commentaires

4 Réponses :


6
votes

Vous devriez lire via le Guide d'impression pour iOS . La propriété imprimantetem code> de UIPRINTITIPRONCONTROLLER CODE> peut être réglé sur le NSDATA code> d'un fichier PDF.

Mise à jour pour Code ajouté strud> p>

La valeur de DataFrompath doit être égale à [MyView pdfdata] Bien que je recommanderais de modifier le nom de la variable une fois que vous l'obtenez. P>

NSData *dataFromPath = [myView PDFData];


3 commentaires

Ce sont les codes que j'utilise pour le courrier électronique (cela fonctionne fortement) et le code d'impression qui doit être changé


J'ai mis à jour ma réponse, vous pouvez republier votre exemple de code dans une édition à votre message si vous le souhaitez.


J'ai fait avec ce code, c'était en fait facile .. Grâce à tout le monde: printController.printingitem = [myView pdfdata];



2
votes

1 commentaires

Je savais ce tutoriel, c'est génial, mais je ne trouve pas ce dont j'ai besoin.



3
votes

écrire en dessous du code et vérifiez-le

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];


1 commentaires

Pouvez-vous élargir votre réponse avec une description pourquoi Ce code résoudrait le problème? Un déchargement de code sans une description aide rarement les futurs lecteurs.



5
votes

Code complet pour imprimer 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 commentaires