1

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!

mjdth
  • 6,536
  • 6
  • 37
  • 44

1 Answers1

1

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

addaon
  • 11
  • 1