2010-08-23 5 views
2

Je veux que mon application iPhone crée un fichier PDF et stockez-le dans un endroit approprié - probablement le dossier iBooks pour qu'il puisse être facilement récupéré en utilisant iTunes, mais c'est un changement pour plus tard une fois que j'ai la partie épargne fonctionnant. J'ai suivi à la lettre le tutoriel d'enregistrement PDF sur le site Apple, y compris l'échange de CGContextBeginPage et de CGContextEndPage pour leurs équivalents spécifiques au format PDF, et j'ai vérifié que le nom du fichier de sauvegarde est correct, mais qu'aucun fichier n'est en cours créé ou je ne peux pas trouver où il est stocké. Voici le code, des idées ce qui ne va pas? Est-ce le code, ou ce type d'opération ne fonctionne-t-il pas dans le simulateur?Problèmes de sauvegarde des fichiers PDF dans iOS4

CGRect b = CGRectMake(0, 0, 612, 792); 
NSMutableString *exportPath = [[NSMutableString alloc] 
           initWithString:[[NSBundle mainBundle] bundlePath]]; 
[exportPath appendString:@"/myfile.pdf"]; 
CGContextRef pdfContext; 
CFStringRef path = CFStringCreateWithCString (NULL, [exportPath UTF8String], kCFStringEncodingUTF8); 
CFURLRef url; CFMutableDictionaryRef myDictionary = NULL; 

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, &b, myDictionary); 
CFRelease(myDictionary); 
CFRelease(url); 

CGPDFContextBeginPage(pdfContext, NULL); 
[self drawToContext: pdfContext Bounds:b]; 
CGPDFContextEndPage(pdfContext); 
CGPDFContextClose(pdfContext); 
CGContextRelease (pdfContext); 

Répondre

1

Vous essayez d'enregistrer le PDF dans votre groupe. Je suis sûr que tu peux le faire. Utilisez le chemin du document à la place.

NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDir = [documentPaths objectAtIndex:0]; 
NSString *dbpath = [documentsDir stringByAppendingPathComponent:@"myfile.pdf"]; 
+0

Merci, cela semble l'avoir réglé. Remarquez, je semble maintenant avoir un problème légèrement différent en ce sens que certaines des commandes graphiques que j'utilise ne sont pas compatibles PDF ... eh bien! Au moins, je me déplace à nouveau. – Ash

Questions connexes