使用以下代码,未正确创建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.
我尝试过几种不同的路径,所以我很确定这不是问题所在。谢谢你的建议!
答案 0 :(得分:1)
如果您的字符串包含路径,则需要+ [NSURL fileURLWithPath:],而不是+ [NSURL URLWithString:]。