2013-04-15 127 views
0

我正在研究可以打印創建的PDF的應用程序。 PDF是11 x 8.5,所以我需要它來打印橫向模式,但我有問題正確設置方向。這是我的印刷品。在iOS上的橫向打印PDF

- (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]; 
     // } 
    } 
} 

回答

0

你有沒有嘗試過這樣的:

printInfo.orientation = UIPrintInfoOrientationLandscape; 

確保其分配的UIPrintInfo到UIPrintInteractionController前添加 -

pic.printInfo = printInfo; 

希望這樣可以解決問題爲您服務。