1

使用以下代码,未正确创建 ctx。它仍然是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

在控制台中显示: <Error>: CGPDFContextCreate: failed to create PDF context delegate.

我已经尝试了几种不同的路径,所以我相当确定这不是问题所在。感谢您的任何建议!

4

1 回答 1

1

如果你的字符串包含一个路径,你需要 +[NSURL fileURLWithPath:],而不是 +[NSURL URLWithString:]。

于 2010-08-08T09:10:47.207 回答