2010-12-13 3 views
0

Я рендеринга PDF путем создания контекста PDF и придав ему путь, как указано ниже:iphone 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

Не окончательное решение Вашего вопроса, но я хотел бы добавить что-то вроде NSFileManager createFileAtPath: или someObject writeToFile:file atomically:YES]; после NSString * файл строки и проверить, если какой-либо файл вообще создаются.

Запустите приложение в симуляторе, а затем открыть терминал и сделать

find ~/* | grep mypdf.pdf

Эта команда должна найти файл в директории симуляторы документов. С помощью джейлбрейкового устройства и оболочки ssh вы можете попробовать один и тот же тест на телефоне, но для создания файлов симулятор работает нормально.

Предполагая, что вы установили UIFileSharingEnabled в info.plist, ваше приложение будет отображаться в iTunes. И если mypdf.pdf создан, даже когда он пуст, он также должен отображаться в iTunes. iTunes не фильтрует, а отображает все, что находится в каталоге документов.

После того, как вы подтвердили, что файл может быть создан, продолжайте с помощью второго блока кода, который вы отправили, используя отладчик и посмотрите, как обрабатываются данные. Я никогда не создавал PDF-файл, поэтому я не могу вам помочь.

+0

Этот параметр UIFileSharingEnabled был полезен благодаря помощнику. –

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]; 
+0

Полезно также спасибо. Легко просто открыть этот Webview и посмотреть, создано ли что-то. –