使用Cocoa打印Pdf文件,应用程序崩溃

使用Cocoa打印Pdf文件,应用程序崩溃,cocoa,pdf,nsprintoperation,Cocoa,Pdf,Nsprintoperation,我正在使用此代码打印Pdf文件: - (void)printPDF:(NSURL *)fileURL { // Create the print settings. NSPrintInfo *printInfo = [NSPrintInfo sharedPrintInfo]; [printInfo setTopMargin:0.0]; [printInfo setBottomMargin:0.0]; [printInfo setLeftMargin:0.0]; [printInfo set

我正在使用此代码打印Pdf文件:

- (void)printPDF:(NSURL *)fileURL {

 // Create the print settings.
 NSPrintInfo *printInfo = [NSPrintInfo sharedPrintInfo];
[printInfo setTopMargin:0.0];
[printInfo setBottomMargin:0.0];
[printInfo setLeftMargin:0.0];
[printInfo setRightMargin:0.0];
[printInfo setHorizontalPagination:NSFitPagination];
[printInfo setVerticalPagination:NSFitPagination];

// Create the document reference.
PDFDocument *pdfDocument = [[PDFDocument alloc] initWithURL:fileURL];

// Invoke private method.
// NOTE: Use NSInvocation because one argument is a BOOL type. Alternately, you could declare the method in a category and just call it.
BOOL autoRotate = YES;
NSMethodSignature *signature = [PDFDocument instanceMethodSignatureForSelector:@selector(getPrintOperationForPrintInfo:autoRotate:)];
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
[invocation setSelector:@selector(getPrintOperationForPrintInfo:autoRotate:)];
[invocation setArgument:&printInfo atIndex:2];
[invocation setArgument:&autoRotate atIndex:3];
[invocation invokeWithTarget:pdfDocument];

// Grab the returned print operation.
NSPrintOperation *op = nil;
[invocation getReturnValue:&op];

// Run the print operation without showing any dialogs.
[op setShowsPrintPanel:NO];
[op setShowsProgressPanel:NO];
[op runOperation];
}
我的代码中也包含以下内容:

- (NSPrintOperation *)getPrintOperationForPrintInfo:(NSPrintInfo *)printInfo autoRotate:(BOOL)doRotate;
{
   return nil;
}
它打印Pdf文件,但应用程序总是崩溃。。。我想这里面少了点什么

(NSPrintOperation*)获取PrintOperationForPrintInfo

任何帮助都将不胜感激

    // Create the document reference.
PDFDocument *pdfDocument = [[PDFDocument alloc] initWithURL:fileURL];

// Create the print settings.
NSPrintInfo *printInfo = [NSPrintInfo sharedPrintInfo];
[printInfo setTopMargin:0.0];
[printInfo setBottomMargin:0.0];
[printInfo setLeftMargin:0.0];
[printInfo setRightMargin:0.0];
[printInfo setHorizontalPagination:NSFitPagination];
[printInfo setVerticalPagination:NSFitPagination];


PDFPrintScalingMode scale = kPDFPrintPageScaleDownToFit;

// Grab the returned print operation.
NSPrintOperation *op = [pdfDocument printOperationForPrintInfo: printInfo scalingMode: scale autoRotate: YES];

// Run the print operation without showing any dialogs.
[op setShowsPrintPanel:NO];
[op setShowsProgressPanel:NO];
[op runOperation];

这应该有用

应用程序崩溃时会出现什么错误?线程1:EXC\u BAD\u访问(代码=1,地址=0x20)