views:

222

answers:

2

Using the following code, the ctx is not correctly being created. It remains nil:

#import <QuartzCore/QuartzCore.h>

@implementation UIView(PDFWritingAdditions)

- (void)renderInPDFFile:(NSString*)path
{
    CGRect mediaBox = self.bounds;
    CGContextRef ctx = CGPDFContextCreateWithURL((CFURLRef)[NSURL URLWithString:path], &mediaBox, NULL);

    CGPDFContextBeginPage(ctx, NULL);
    CGContextScaleCTM(ctx, 1, -1);
    CGContextTranslateCTM(ctx, 0, -mediaBox.size.height);
    [self.layer renderInContext:ctx];
    CGPDFContextEndPage(ctx);
    CFRelease(ctx);
}

@end

In the console it shows: <Error>: CGPDFContextCreate: failed to create PDF context delegate.

I've tried several different paths so I'm fairly certain that is not the problem. Thanks for any advice!

A: 

So what are some of the paths that you tried?

Morgan
A: 

If your string contains a path, you want +[NSURL fileURLWithPath:], not +[NSURL URLWithString:].

addaon