我通过创建一个pdf上下文并给它一个如下定义的路径来渲染pdf:
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *docsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *file = [docsDirectory stringByAppendingPathComponent:@"mypdf.pdf"];
然后使用如下路径:
char * fileutf8 = [file UTF8String];
CGContextRef pdfContext;
CFStringRef path;
CFURLRef url;
CFMutableDictionaryRef myDictionary = NULL;
path = CFStringCreateWithCString (NULL, fileutf8,kCFStringEncodingUTF8);
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, &size, myDictionary);
CFRelease(url);
CFRelease(myDictionary);// rendering code follows
长话短说我无法看到PDF是否看起来很好,因为我在iTunes的“文件共享”区域找不到它。我错过了什么吗?
答案 0 :(得分:0)
要查看PDF文件,您可以使用网页浏览。
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *docsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) objectAtIndex:0];
NSString *file = [docsDirectory stringByAppendingPathComponent:@"mypdf.pdf"];
// use the code for webView
UIWebView *attachmentWebView = [[UIWebView alloc] initWithFrame:CGRectMake(10,0,300,400)];
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL fileURLWithPath:file]];
[attachmentWebView loadRequest:request];
[request release];
[self.view addSubview:attachmentWebView];
[attachmentWebView release];
答案 1 :(得分:0)
不是你问题的最终解决方案,但我会添加类似的东西
在NSString *文件行之后NSFileManager createFileAtPath:
或someObject writeToFile:file atomically:YES];
并验证是否创建了任何文件。
在模拟器中运行应用程序,然后打开终端并执行
find ~/* | grep mypdf.pdf
该命令应该在Simulators文档目录下找到该文件。使用越狱设备和ssh shell,您可以在手机上尝试相同的测试,但是对于创建文件,模拟器可以正常工作。
假设您已在info.plist中设置了UIFileSharingEnabled,您的应用将在iTunes中显示。如果创建了mypdf.pdf,即使是空的,它也应该在iTunes中显示。 iTunes不会过滤,但会显示位于文档目录中的任何内容。
确认可以创建文件后,继续逐步执行您发布的第二个代码块,使用调试器查看数据的处理方式。我从来没有创建过PDF文件,因此我无法帮助你。