从文档目录加载PDF-iPhone

从文档目录加载PDF-iPhone,iphone,objective-c,core-graphics,Iphone,Objective C,Core Graphics,我不想从resources文件夹加载PDF,而是想 从documents目录加载它。我一直在努力做到这一点 持续数天,但CGPDFDocumentRef始终返回NULL。这是我的 代码: 文件路径正确,我已经检查了模拟器文档 目录和文件肯定在那里。当我运行应用程序时 最后一个NSLog显示(NULL),并显示一个空白的白色页面PDF。 你知道怎么了吗? 谢谢 好的,下一次试试。我希望这次会更有用:-/ 您确定此路径上存在该文件吗? 我创建了一个与您类似的测试用例。对于一个名为“file123.p

我不想从resources文件夹加载PDF,而是想 从documents目录加载它。我一直在努力做到这一点 持续数天,但CGPDFDocumentRef始终返回NULL。这是我的 代码:

文件路径正确,我已经检查了模拟器文档 目录和文件肯定在那里。当我运行应用程序时 最后一个NSLog显示(NULL),并显示一个空白的白色页面PDF。 你知道怎么了吗?
谢谢

好的,下一次试试。我希望这次会更有用:-/

您确定此路径上存在该文件吗?
我创建了一个与您类似的测试用例。对于一个名为“file123.pdf”的文件,这似乎是可行的。至少我可以阅读pdf的版本

我在您的代码示例之后添加了这个,以查看是否加载了pdf

NSLog(@"PDF: %@", pdf);
int majorVersion;
int minorVersion;
CGPDFDocumentGetVersion(pdf, &majorVersion, &minorVersion);
NSLog(@"%d %d", majorVersion, minorVersion);
这给了我以下控制台输出:

2010-10-08 13:01:40.246 test[3517:207] PATH: /var/mobile/Applications/E9CDCAC1-430D-488E-ABC3-33F40F6A06F4/Documents/file 123.pdf
2010-10-08 13:01:40.252 test[3517:207] URL: file://localhost/var/mobile/Applications/E9CDCAC1-430D-488E-ABC3-33F40F6A06F4/Documents/file%20123.pdf
2010-10-08 13:01:40.257 test[3517:207] PDF: <NSCFType: 0x139660>
2010-10-08 13:01:40.260 test[3517:207] 1 4

路径上必须有一个有效的pdf文件。

显而易见的答案是使用pdfURL in der DocumentCreate函数。最终的结局不知从何而来,甚至不清楚它是为了什么


pdf=CGPDFDocumentCreateWithURL(pdfURL)

您可能在该路径上没有PDF文件。
CGPDFDocumentCreateWithURL
中的“Create”表示CGPDFDocument对象;它不会在该URL上创建文档文件。只能为已存在的PDF文件创建CGPDFDocument对象


另外,正如我在您的另一个问题中提到的,我不明白您为什么要尝试从路径中删除“localhost/”。首先,它不太可能出现在那里(它更可能只出现在URL中),如果它确实出现在那里,它应该出现在那里,去掉它会导致路径错误。

假设pdf是CGPDFDocumentRef,我们使用类似的代码。不过对我的有效。不明白您的失败原因。是什么让您认为“localhost/”将成为文件路径名的一部分,并且需要从中删除它?它通常只出现在URL中,但您尚未创建URL。
2010-10-08 13:01:40.246 test[3517:207] PATH: /var/mobile/Applications/E9CDCAC1-430D-488E-ABC3-33F40F6A06F4/Documents/file 123.pdf
2010-10-08 13:01:40.252 test[3517:207] URL: file://localhost/var/mobile/Applications/E9CDCAC1-430D-488E-ABC3-33F40F6A06F4/Documents/file%20123.pdf
2010-10-08 13:01:40.257 test[3517:207] PDF: <NSCFType: 0x139660>
2010-10-08 13:01:40.260 test[3517:207] 1 4
if (![[NSFileManager defaultManager] fileExistsAtPath:path])
    NSLog(@"File does not exist!");