2010-12-13 7 views
0

Je suis rendu un pdf en créant un contexte pdf et en lui donnant un chemin tel que défini ci-dessous:iphone pdf sauver le document magasin

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

Et puis en utilisant cette voie comme ce qui suit:

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 

Longue histoire courte Je ne peux pas voir si le PDF semble bien parce que je ne le trouve pas dans iTunes dans la zone de partage de fichiers. Est-ce que je manque quelque chose?

Répondre

0

pas la solution finale à votre question, mais je voudrais ajouter quelque chose comme NSFileManager createFileAtPath: ou someObject writeToFile:file atomically:YES]; après la ligne du fichier NSString * et vérifier si un fichier tout est créé.

Exécutez l'application dans le simulateur, puis ouvrez un terminal et faire une

find ~/* | grep mypdf.pdf

Cette commande devrait trouver le fichier dans le répertoire des documents Simulateurs. Avec un appareil jailbreaké et un shell ssh, vous pouvez essayer le même test sur le téléphone, mais pour créer des fichiers, le simulateur a tendance à fonctionner correctement.

En supposant que vous avez défini UIFileSharingEnabled dans info.plist, votre application s'affiche dans iTunes. Et si mypdf.pdf est créé, même vide, il devrait aussi apparaître dans iTunes. iTunes ne filtre pas mais affiche tout ce qui se trouve dans le répertoire des documents. Une fois que vous avez vérifié qu'un fichier peut être créé, continuez à parcourir le deuxième bloc de code que vous avez publié, en utilisant le débogueur et voyez comment les données sont traitées. Je n'ai jamais créé un fichier PDF donc je ne peux pas vous aider beaucoup là-bas.

+0

Ce paramètre UIFileSharingEnabled a été utile grâce à mate. –

0

Pour afficher le fichier PDF, vous pouvez utiliser Webviews.

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

Utile aussi bien merci. Il est facile de faire apparaître cette Webview et de voir si quelque chose a été créé. –