私はiPhoneプログラミングの初心者です。私のアプリケーションでは、リソースフォルダに保存されているPDFの最初のページのサムネイルを表示します。次のコードを使用してサムネイルを作成していますが、横向きのPDFに適しています。しかし、縦向きのPDFのサムネイルを作成しているときに、PDFをWebビューで開いたときに表示されない余分な部分を含む画像が表示されます。
これは私がサムネイルを作成するために使用しているコードです:
NSURL * pdfFileUrl = [NSURLfileURLWithPath:filePath];
CGPDFDocumentRef pdf = CGPDFDocumentCreateWithURL((CFURLRef)pdfFileUrl);
CGRect aRect = CGRectMake(0, 0, 1024, 768);
UIGraphicsBeginImageContext(aRect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
CGContextTranslateCTM(context, 0.0, aRect.size.height);
CGContextScaleCTM(context, 1.0, -1.0);
CGContextTranslateCTM(context, -(aRect.origin.x), -(aRect.origin.y));
CGContextSetGrayFillColor(context, 1.0, 1.0);
CGContextFillRect(context, aRect);
//Grab the first PDF page
CGPDFPageRef page = CGPDFDocumentGetPage(pdf, 1);
CGAffineTransform pdfTransform = CGPDFPageGetDrawingTransform(page, kCGPDFCropBox, aRect, 0, false);
// And apply the transform.
CGContextConcatCTM(context, pdfTransform);
CGContextDrawPDFPage(context, page);
// Create the new UIImage from the context
UIImage *thumbnail = UIGraphicsGetImageFromCurrentImageContext();
CGContextRestoreGState(context);
UIGraphicsEndImageContext();
CGPDFDocumentRelease(pdf);
このコードを使用してポートレートPDFのサムネイル画像を作成しているときに、取得している画像は正確なものではありません。それはいくつかの余分な部分があります。これは、そのPDFの隠れた部分だと思います。また、同じPDFをUIWebViewにロードすると、余分な部分がなくても正しいPDFを表示できます。誰かが私にこれに対する解決策を与えることができますか?
ありがとう。