在iOS上以横向方式打印PDF

在iOS上以横向方式打印PDF,ios,xcode,pdf,airprint,Ios,Xcode,Pdf,Airprint,我正在开发一个可以打印已创建PDF的应用程序。PDF是11 x 8.5,所以我需要它来打印横向模式,但我在正确设置方向时遇到了问题。这是我的印刷品 - (void)printit { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex

我正在开发一个可以打印已创建PDF的应用程序。PDF是11 x 8.5,所以我需要它来打印横向模式,但我在正确设置方向时遇到了问题。这是我的印刷品

- (void)printit {
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *documentsDirectory = [paths objectAtIndex:0];

    NSString *pdfPath = [documentsDirectory stringByAppendingPathComponent:selectedCountry];
    NSData *pdfData = [NSData dataWithContentsOfFile:pdfPath];

    UIPrintInteractionController *pic = [UIPrintInteractionController sharedPrintController];
    if  (pic && [UIPrintInteractionController canPrintData:pdfData] ) {
        pic.delegate = self;
        UIPrintInfo *printInfo = [UIPrintInfo printInfo];
        printInfo.outputType = UIPrintInfoOutputGeneral;
        printInfo.jobName = selectedCountry;
        printInfo.duplex = UIPrintInfoDuplexNone;
        pic.printInfo = printInfo;
        pic.showsPageRange = YES;
        pic.printingItem = pdfData;
               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);
        };
        //if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
        //    [pic presentFromBarButtonItem:self.printButton animated:YES
        //                completionHandler:completionHandler];
      //  }
   // else {
            [pic presentAnimated:YES completionHandler:completionHandler];
       // }
    }
}
你试过这个吗:

printInfo.orientation = UIPrintInfoOrientationLandscape;
在将UIPrintInfo分配给UIPrintInteractionController之前,请确保其已添加--

希望这能为你解决这个问题

pic.printInfo = printInfo;