Код ниже предназначен для отображения страниц PDF при правильной обработке любых ненулевых углов поворота, которые могут быть указаны для каждой страницы. Мой тестовый PDF-файл содержит несколько страниц, и одна из них имеет угол поворота 180 градусов, который код правильно определяет, но вызов CGPDFPageGetDrawingTransform (за которым следует CGContextContactCTM) не имеет никакого эффекта. Страница отображается без поворота. Что я делаю не так?
CGContextSaveGState(context);
CGRect drawRect=self.bounds;
CGRect cropBox = CGPDFPageGetBoxRect(pdfPage, kCGPDFCropBox);
int rotationAngle=CGPDFPageGetRotationAngle(pdfPage);
if (kDebug>1) {
NSLog(@"***** page rotation angle is %d",rotationAngle);
}
CGContextTranslateCTM(context, drawRect.origin.x, drawRect.origin.y);
CGAffineTransform transform = CGPDFPageGetDrawingTransform(pdfPage, kCGPDFCropBox, cropBox, rotationAngle, true);
CGContextConcatCTM (context, transform);
float xScaleFactor=drawRect.size.width / cropBox.size.width;
float yScaleFactor=drawRect.size.height / cropBox.size.height;
CGContextTranslateCTM(context, -CGRectGetMinX(cropBox), CGRectGetMaxY(cropBox)*yScaleFactor);
CGContextScaleCTM(context, xScaleFactor, -yScaleFactor);
CGContextClipToRect(context, cropBox);
CGContextDrawPDFPage(context, pdfPage);
CGContextRestoreGState(context);
Спасибо,
// Скотт