2014-03-27 4 views
1

привет, я создан pdf-файл, используя кварцевую фреймворк в IOS.i, необходимо загрузить этот файл в формате PDF в локальной папке, например, сохранить изображения в симуляторе. Кто-нибудь скажет мне, как это сделать.сохранить pdf локально в IOS

мой код для создания PDF-файл

 -(NSString*)getPDFFileName 
    { 
    NSString* fileName = @"Invoice.PDF"; 

    NSArray *arrayPaths = 
    NSSearchPathForDirectoriesInDomains(
            NSDocumentDirectory, 
            NSUserDomainMask, 
            YES); 
    NSString *path = [arrayPaths objectAtIndex:0]; 
    NSString* pdfFileName = [path stringByAppendingPathComponent:fileName]; 

    return pdfFileName; 

    } 

    -(void)showPDFFile 


    { 
    NSString* fileName = @"Invoice.PDF"; 

    NSArray *arrayPaths = 
    NSSearchPathForDirectoriesInDomains(
            NSDocumentDirectory, 
            NSUserDomainMask, 
            YES); 
    NSString *path = [arrayPaths objectAtIndex:0]; 
    NSString* pdfFileName = [path stringByAppendingPathComponent:fileName]; 

    UIWebView* webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)]; 

    NSURL *url = [NSURL fileURLWithPath:pdfFileName]; 
    NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
    [webView setScalesPageToFit:YES]; 
    [webView loadRequest:request]; 

    [self.view addSubview:webView];  
    } 

    - (void)viewDidLoad 
    { 
    NSString* fileName = [self getPDFFileName]; 

    [PDFRenderer drawPDF:fileName]; 
    [self showPDFFile]; 

    [super viewDidLoad]; 
} 

заранее спасибо ..

+2

откуда вы получаете файл? Вы создаете в приложении, а не сохраняете или загружаете его с удаленного сервера и сохраняете? –

+0

Я создаю страницу с pdf, так как в app.i необходимо сохранить это –

ответ

2

Это будет делать то, что вам нужно.

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectoryPath = [paths objectAtIndex:0]; 
    NSString *pdfDirectoryString = [NSString stringWithFormat:@"%@/YOUR_FILE_NAME", documentsDirectoryPath]; 

    NSError *error = nil; 
    if (![YOUR_PDF_DATA writeToFile:pdfDirectoryString options:NSDataWritingAtomic error:&error]) 
     NSLog(@"Error: %@", [error localizedDescription]); 
+0

здесь YOUR_PDF_DATA означает, что я даю. –

+0

Это данные файла, так как NSData ... – CW0007007

+0

Сохранение в каталоге документа без взаимодействия с пользователем может привести к отклонению вашего приложения в магазине Apple. Храните его в библиотечном каталоге. –

0

Попробуйте

Для сохранения PDF в директории Document

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSData *data = [PDFImageConverter convertImageToPDF:screenShot]; // convert PDF to data 
NSString *path = [NSString stringWithFormat:@"%@/%@",[docArr objectAtIndex:0],[NSString stringWithFormat:@"userDetails.pdf"]]; 
[data writeToFile:path atomically:NO]; 

Для извлечения и отображения в веб-просмотра

NSArray  *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 

NSString *pdfPathString =[NSString stringWithFormat:@"%@",[documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"userDetails.pdf"]]]; 
NSURL *targetURL = [NSURL fileURLWithPath:pdfPathString]; 
NSURLRequest *request = [NSURLRequest requestWithURL:targetURL]; 
[contentWebview loadRequest:request]; 
Смежные вопросы