見開きとして保存されている PDF ページがあります。これは、ユーザーがズームしたり、テキストを強調表示したり、ハイパーリンクをクリックしたりできる 1 つのビューでうまくいきます。ただし、見開きではなく個別のページを必要とする別のビューで同じ PDF ファイルを使用したいと考えています。ユーザーに無関係な PDF ファイルをダウンロードさせる必要がないように願っています。
すばらしい「Leaves」プロジェクトを自分のやりたいように適応させることができました。しかし、次のコードのいずれかを変更して、PDF を描画するようにできますが、ページの右半分または左半分をトリミングし、必要に応じてオフセットを変更することはできますか?
- (void) renderPageAtIndex:(NSUInteger)index inContext:(CGContextRef)ctx
{
CGPDFPageRef page = CGPDFDocumentGetPage(myDocumentRef, index + 1);
CGAffineTransform transform = aspectFit(CGPDFPageGetBoxRect(page, kCGPDFMediaBox), CGContextGetClipBoundingBox(ctx));
CGContextConcatCTM(ctx, transform);
CGContextDrawPDFPage(ctx, page);
}
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx
{
CGContextSetRGBFillColor(ctx, 1.0, 1.0, 1.0, 1.0);
CGContextFillRect(ctx, CGContextGetClipBoundingBox(ctx));
CGContextTranslateCTM(ctx, 0.0, layer.bounds.size.height);
CGContextScaleCTM(ctx, 1.0, -1.0);
CGContextConcatCTM(ctx, CGPDFPageGetDrawingTransform(myPageRef, kCGPDFCropBox, layer.bounds, 0, true));
CGContextDrawPDFPage(ctx, myPageRef);
}
または、同じことを達成するための別のアプローチがあれば、それも歓迎します。
ありがとう!