我有一种方法可以将PDF绘制成位图。 偶尔我在实际设备(而不是模拟器)上运行它时会在日志中看到此错误:
<Error>: FT_Select_Charmap failed: error 6
错误发生在标记的行(#11):
NSURL *url = [NSURL fileURLWithPath:pdfFilePath];
CGPDFDocumentRef documentRef = CGPDFDocumentCreateWithURL((CFURLRef)url);
CGPDFPageRef pageRef = CGPDFDocumentGetPage(documentRef, 1);
UIGraphicsBeginImageContext(frame.size);
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextSetRGBFillColor(ctx, 1.0, 1.0, 1.0, 1.0);
CGContextFillRect(ctx, CGContextGetClipBoundingBox(ctx));
CGContextTranslateCTM(ctx, 0.0, frame.size.height);
CGContextScaleCTM(ctx, 1.0, -1.0);
CGContextConcatCTM(ctx, CGPDFPageGetDrawingTransform(pageRef, kCGPDFCropBox, frame, 0, true));
CGContextDrawPDFPage(ctx, pageRef); // ERROR HERE
UIImage *pdfImage = UIGraphicsGetImageFromCurrentImageContext(); // Is this retained???
UIGraphicsPopContext();
CGPDFDocumentRelease(documentRef);
答案 0 :(得分:0)
我看到你的评论是否保留?用于GetImageContext ...函数 答案是它进入自动释放池,所以如果你想在别处使用它,你应该手动保留你的pdfImage返回。查看文档以获取更多信息。 http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIKitFunctionReference/Reference/reference.html
对于您的主要错误,您是否可以提供相同文件的信息(对于给定的PDF,它是否可以100%重现?)。然后你可以判断它是特定的PDF文件还是库中的东西。