CGPDFDocumentCreateWithURL给我0x0 nil

时间:2010-08-27 21:10:42

标签: iphone core-graphics quartz-graphics cgpdfdocument

我的应用程序包中有test.pdf文件。我在iPhone模拟器(iPad)中运行测试,我无法填充CGPDFDocumentRef。我疯了还是什么?!?

这是示例应用程序中的一段代码,专门用于此(ViewController类):

- (void)viewDidLoad {
    [super viewDidLoad];
    // below code to show files in app bundle...
 NSString *path = [[NSBundle mainBundle] resourcePath];
 NSFileManager *fm = [NSFileManager defaultManager];
 NSError *error = [[NSError alloc] init];
 NSArray *directoryAndFileNames = [fm contentsOfDirectoryAtPath:path error:&error];

 //just to make sure the file is there : (test.pdf)
 for (NSString *ts in directoryAndFileNames) {
  NSLog(ts);  // NSLog confirms the file is there
 }

 //Function below is supposed to create the CDPDFDocumentRef
 [self updatePageRef]; // try to get the CGPDFDocumentRef
}

-(BOOL)updatePageRef {
 NSLog(@"Updating PAGE");

 NSString *pdfStringURL = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"pdf"];
 NSURL *pdfURL = [NSURL fileURLWithPath:pdfStringURL];
 NSLog([pdfURL path]); // this is good

 NSLog(@"File Exists = %d", [[NSFileManager defaultManager] fileExistsAtPath:pdfStringURL]); // this gives me 1 (YES)

 pdf = CGPDFDocumentCreateWithURL((CFURLRef)pdfURL);    
    //from here on the pdf is nil??????????!!!!!!!!!!!!!

 if (pdf && CGPDFDocumentGetNumberOfPages(pdf) > 0) {
  return YES;
 }

 return NO;
}

pdf之上在@interface中声明为CGPDFDocumentRef pdf; 我知道PDF文件很好,因为我已经在'预览'中成功打开了它。

一切都在没有任何警告和错误的情况下编译和运行。

帮助!

1 个答案:

答案 0 :(得分:1)

我找到了一个解决方案,对不起要问第一名。 尽管PDF在“预览”中表现得非常完美,但PDF并不是很好。 我已经把另一个pdf命名为'test.pdf',一切顺利。

干杯!