Проблемы с сохранением файлов PDF в iOS4 - PullRequest
2 голосов
/ 23 августа 2010

Я хочу, чтобы приложение iPhone создавало PDF-файл и сохраняло его в подходящем месте - возможно, в папке iBooks, чтобы его можно было легко найти с помощью iTunes, но это будет изменение позже, когда у меня будет работать сохраняющая часть. Я следовал руководству по сохранению PDF на сайте Apple до письма, включая замену CGContextBeginPage и CGContextEndPage на их конкретные PDF-эквиваленты, и я проверил, что имя файла сохранения установлено в правильное место, но либо файл не используется создан или я просто не могу найти где он хранится. Вот код, есть идеи, что не так? Это код или эта операция просто не выполняется в симуляторе?

    CGRect b = CGRectMake(0, 0, 612, 792);
NSMutableString *exportPath = [[NSMutableString alloc] 
                               initWithString:[[NSBundle mainBundle] bundlePath]];
[exportPath appendString:@"/myfile.pdf"];
CGContextRef pdfContext;
CFStringRef path = CFStringCreateWithCString (NULL, [exportPath UTF8String], kCFStringEncodingUTF8);
CFURLRef url; CFMutableDictionaryRef myDictionary = NULL;

url = CFURLCreateWithFileSystemPath(NULL, path, kCFURLPOSIXPathStyle, 0);
CFRelease(path);
myDictionary = CFDictionaryCreateMutable(NULL, 0,
                                         &kCFTypeDictionaryKeyCallBacks,
                                         &kCFTypeDictionaryValueCallBacks);
CFDictionarySetValue(myDictionary, kCGPDFContextTitle, CFSTR("My PDF File"));
CFDictionarySetValue(myDictionary, kCGPDFContextCreator, CFSTR("My Name"));

pdfContext = CGPDFContextCreateWithURL (url, &b, myDictionary);
CFRelease(myDictionary);
CFRelease(url);

CGPDFContextBeginPage(pdfContext, NULL);
[self drawToContext: pdfContext Bounds:b];
CGPDFContextEndPage(pdfContext);
CGPDFContextClose(pdfContext);
CGContextRelease (pdfContext);  

1 Ответ

1 голос
/ 23 августа 2010

Вы пытаетесь сохранить PDF в свой пакет. Я уверен, что вы можете сделать это. Вместо этого используйте путь к документу.

NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [documentPaths objectAtIndex:0];
NSString *dbpath = [documentsDir stringByAppendingPathComponent:@"myfile.pdf"];
...