Brad Miller @ Cocoa Dev Central написал учебное пособие по созданию PDF-файлов из Cocoa. Я попытался следовать учебнику, но, поскольку его довольно старый (2003), много кода было устаревшим. Я получил его для работы после некоторого fiddeling, но когда я пытаюсь экспортировать PDF-файл, отображается диалоговое окно печати, и оно не сохраняет PDF-файл в указанном файле.Экспорт Просмотр в формате PDF от Cocoa
NSPrintInfo *printInfo;
NSPrintInfo *sharedInfo;
NSPrintOperation *printOp;
NSMutableDictionary *printInfoDict;
NSMutableDictionary *sharedDict;
sharedInfo = [NSPrintInfo sharedPrintInfo];
sharedDict = [sharedInfo dictionary];
printInfoDict = [NSMutableDictionary dictionaryWithDictionary: sharedDict];
[printInfoDict setObject:NSPrintSaveJob
forKey:NSPrintJobDisposition];
[printInfoDict setObject:[panel URL] forKey:NSPrintSavePath];
printInfo = [[NSPrintInfo alloc] initWithDictionary:printInfoDict];
[printInfo setHorizontalPagination: NSAutoPagination];
[printInfo setVerticalPagination: NSAutoPagination];
[printInfo setVerticallyCentered:NO];
printOp = [NSPrintOperation printOperationWithView:textView
printInfo:printInfo];
[printOp setShowsProgressPanel:NO];
[printOp runOperation];
Полный код для моей реализации экспорта PDF является here. Вышеприведенный код касается экспорта.
Был бы очень рад, если бы кто-то мог увидеть, что им делать неправильно здесь ...
Просто быстрый FYI: ['NSPrintSavePath' устарел с 10.6] (https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSPrintInfo_Class/index.html#//apple_ref/doc/constant_group/Print_job_attributes) и заменен на «NSPrintJobSavingURL», который принимает экземпляр «NSURL», поэтому исходный '[URL-адрес панели] будет работать с этим! – Adam