2011-09-22 106 views
1

我试图在iPhone上创建一个PDF的练习。我不确定它为什么不起作用。我得到的错误:创建一个简单的pdf

2011-09-21 21:35:00.412 CreatePDF[869:b303] -[CreatePDFViewController createPDFDocumentAtURL:] 
CreatePDF[869] <Error>: CGDataConsumerCreateWithFilename: failed to open `/Users/jon/Library/Application Support/iPhone Simulator/4.3.2/Applications/4486CF27-B309-4C7C-82A5-B425B9E2C04D/Documents' for writing: Is a directory. 
deflateEnd: error -3: (null). 
CreatePDF[869] <Error>: CGPDFContextCreate: failed to create PDF context delegate. 
2011-09-21 21:35:00.419 CreatePDF[869:b303] Couldn't create PDF context 
<Error>: CGContextBeginPage: invalid context 0x0 

这里是我的代码:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSURL *documentsURL = [NSURL fileURLWithPath:documentsDirectory]; 
    [self createPDFDocumentAtURL:(CFURLRef)documentsURL]; 
    NSLog(@"%s", __FUNCTION__); 
} 


- (void)createPDFDocumentAtURL:(CFURLRef)url { 
    NSLog(@"%s", __FUNCTION__); 
    float red[] = {1., 0., 0., 1. }; 
    CGRect mediaBox = CGRectMake(0, 0, 850, 1100); 
    CGContextRef pdfContext = CGPDFContextCreateWithURL(url, &mediaBox, NULL); 
    if (!pdfContext) { 
     NSLog(@"Couldn't create PDF context"); 
    } 
    CGContextBeginPage(pdfContext, &mediaBox); 
    CGContextSaveGState(pdfContext); 
    CGContextClipToRect(pdfContext, mediaBox); 
    CGContextSetFillColorSpace(pdfContext, CGColorSpaceCreateDeviceRGB()); 
    CGContextSetFillColor(pdfContext, red); 
    CGContextFillRect(pdfContext, mediaBox); 
    CGContextRestoreGState(pdfContext); 
    CGContextEndPage(pdfContext); 
    CGContextRelease(pdfContext); 
} 

回答

2

你必须为新的文件名添加到您的网址。您的documentsURL现在包含此权利:

/Users/jon/Library/Application Support/iPhone Simulator/4.3.2/Applications/4486CF27-B309-4C7C-82A5-B425B9E2C04D/Documents/

+0

感谢您的帮助! – Crystal