2010-12-13 8 views
0

Ich bin Rendering eine pdf durch ein PDF-Kontext zu schaffen und es einen Weg geben, wie unten definiert:iphone pdf zu Dokumentenspeicher speichern

NSFileManager *fileManager = [NSFileManager defaultManager]; 
NSString *docsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 
NSString *file = [docsDirectory stringByAppendingPathComponent:@"mypdf.pdf"]; 

Und dann mit diesen Pfad wie folgt aus:

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 

Lange Rede kurzer Sinn Ich kann nicht sehen, ob das PDF gut aussieht, weil ich es nicht in iTunes unter dem Bereich File Sharing finde. Fehle ich etwas?

Antwort

0

nicht die endgültige Lösung auf Ihre Frage, aber ich würde so etwas wie NSFileManager createFileAtPath: oder someObject writeToFile:file atomically:YES]; nach der NSString * Datei Zeile und überprüfe hinzufügen, wenn eine Datei überhaupt erstellt wird.

Führen Sie die App im Simulator, dann öffnen Sie ein Terminal und eine

find ~/* | grep mypdf.pdf

tun Dieser Befehl sollte die Datei unter der Simulators Dokumenten-Verzeichnis. Mit einem Jailbreak-Gerät und einer SSH-Shell können Sie den gleichen Test am Telefon versuchen, aber zum Erstellen von Dateien neigt der Simulator dazu, gut zu funktionieren.

Wenn Sie UIFileSharingEnabled in info.plist festgelegt haben, wird Ihre App in iTunes angezeigt. Und wenn mypdf.pdf erstellt wird, auch wenn es leer ist, sollte es auch in iTunes angezeigt werden. iTunes filtert nicht, zeigt aber alles an, was sich im Dokumentenverzeichnis befindet.

Nachdem Sie sichergestellt haben, dass eine Datei erstellt werden kann, fahren Sie mit dem Debuggen des zweiten Codeblocks fort, indem Sie den Debugger durchlaufen und sehen, wie die Daten behandelt werden. Ich habe nie eine PDF-Datei erstellt, daher kann ich Ihnen dort nicht viel helfen.

+0

Dieser UIFileSharingEnabled-Parameter war nützlich, dank Mate. –

0

Um die PDF-Datei anzuzeigen, können Sie Webansichten verwenden.

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

Nützlich auch danke. Es ist einfach, das Webview zu öffnen und zu sehen, ob etwas erstellt wurde. –