2014-03-27 84 views
1

嗨我创建的PDF文件使用Quartz框架在IOS.i需要下载该文件在本地文件夹,如保存图像在simulator.any告诉我如何做到这一点。本地保存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

从那里你所得到的文件?你是在应用程序中创建和存储,还是从远程服务器下载而不是存储? – 2014-03-27 08:48:33

+0

我正在用app.i创建pdf页面,需要将 –

回答

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

在没有用户交互的情况下存储在文档目录中可能会导致在苹果商店中拒绝您的应用程序。请将其存储在库目录中。 – 2014-03-27 10:47:05

0

试试这个

对于文档目录保存PDF

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]; 

检索和显示在Web视图

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];