私のソリューション: 私は、この特定の問題の完全な解決策を見つけたことはありませんが、私はかなり効率的にPDFのを処理することができました。私は正直なところ、私がこれを書いたか、例を見つけたのかを覚えていません。別の場所に投稿されたコードの場合は、ありがとう!ここでの最終結果は、docImageがnullか、PDFの最初のページをイメージとして含むことです。私のテーブルの行をロードするとき、私はイメージプレビューをデフォルトイメージに設定し、このコードをブロックを使ってバックグラウンドスレッドで実行します。完了したら、単にプレビューをアニメーション化してセルに戻します。
NSURL *pdfFileURL = [NSURL fileURLWithPath:localFilePath];
CGPDFDocumentRef pdfDoc = CGPDFDocumentCreateWithURL((__bridge CFURLRef) pdfFileURL);
NSUInteger numPages = CGPDFDocumentGetNumberOfPages(pdfDoc);
if(numPages > 0) {
docImage = [UIImage imageFromPDFDocumentRef:pdfDoc];
}
CGPDFDocumentRelease(pdfDoc);
UIImageカテゴリ:
@implementation UIImage (CGPDFDocument)
+(UIImage *)imageFromPDFDocumentRef:(CGPDFDocumentRef)documentRef {
return [self imageFromPDFDocumentRef:documentRef page:1];
}
+(UIImage *)imageFromPDFDocumentRef:(CGPDFDocumentRef)documentRef page:(NSUInteger)page {
CGPDFPageRef pageRef = CGPDFDocumentGetPage(documentRef, page);
CGRect pageRect = CGPDFPageGetBoxRect(pageRef, kCGPDFCropBox);
UIGraphicsBeginImageContext(pageRect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextTranslateCTM(context, CGRectGetMinX(pageRect),CGRectGetMaxY(pageRect));
CGContextScaleCTM(context, 1, -1);
CGContextTranslateCTM(context, -(pageRect.origin.x), -(pageRect.origin.y));
CGContextDrawPDFPage(context, pageRef);
UIImage *finalImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return finalImage;
}
@end
また、私はこれを実装したいが、その後、他の解決策を見つけることではないのUIWebView – harshalb