我正在开发一款可以打印已创建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];
// }
}
}
答案 0 :(得分:0)
你试过这个:
printInfo.orientation = UIPrintInfoOrientationLandscape;
确保在将UIPrintInfo分配给UIPrintInteractionController之前添加它 -
pic.printInfo = printInfo;
希望这能为您解决问题。