запишете pdf файл в устройството

Генерирах pdf файл в моята програма и го имам тук:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *documentsDirectory = [paths objectAtIndex:0];

    NSString *file = [documentsDirectory stringByAppendingFormat:@"/CEX.pdf"];
    NSData *data = [NSData dataWithContentsOfFile:file];

Знам как да запазя снимки във фотогалерията, но нямам идея какво да правя с pdf файл и как и къде да го запазя в устройството. Може ли някой да ми помогне, моля?! :)


person Rudi    schedule 11.01.2013    source източник


Отговори (1)


Кодът, който публикувахте, е за четене на съществуващ PDF файл от директорията Documents.

Ако искате да напишете PDF, трябва да получите NSData обекта, представляващ PDF, да създадете път към файла, след което да използвате метода NSData writeToFile:options:error:, за да запазите данните във файла.

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *file = [documentsDirectory stringByAppendingPathComponent:@"MyDocument.pdf"];

NSData *pdfData = ... // data representing your created PDF
NSError *error = nil;
if ([pdfData writeToFile:file options:NSDataWritingAtomic error:&error]) {
    // file saved
} else {
    // error writing file
    NSLog(@"Unable to write PDF to %@. Error: %@", file, error);
}

BTW - в оригиналния си код заменете:

NSString *file = [documentsDirectory stringByAppendingFormat:@"/CEX.pdf"];

с:

NSString *file = [documentsDirectory stringByAppendingPathComponent:@"CEX.pdf"];

Не използвайте низови формати, освен ако наистина нямате низов формат за обработка.

person rmaddy    schedule 12.01.2013