在iOS4中保存PDF文件时出现问题

时间:2010-08-23 11:17:53

标签: iphone cocoa-touch pdf ios4 core-graphics

我想让我的iPhone应用程序创建一个PDF文件并将其存储在适当的位置 - 可能是iBooks文件夹,因此可以使用iTunes轻松检索,但这是一个更改,以后我有保存部分工作。我已经按照苹果网站上的PDF保存教程进行了处理,包括交换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 个答案:

答案 0 :(得分:1)

您正在尝试将PDF保存到捆绑包中。我很确定你能做到这一点。改为使用文档路径。

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