У меня есть метод, который возвращает UIImage
из CGPDFPageRef
.Вы можете указать ширину для изображения.
Проблема в том, что когда pdfScale
равен> 1, на изображении появляется белая рамка.Таким образом, PDF всегда рисуется в масштабе 1 с рамкой, а не с большим масштабом.Меньшие масштабы - это нормально.
Я пытался изменить тип PDFBox, но, похоже, это ничего не меняет, и документация не совсем понятна.
Кто-то видит ошибку?
- (UIImage*) PDFImageForWidth:(CGFloat) width {
CGRect pageRect = CGPDFPageGetBoxRect(page, kCGPDFCropBox);
CGFloat pdfScale = width/pageRect.size.width;
pageRect.size = CGSizeMake(pageRect.size.width*pdfScale, pageRect.size.height*pdfScale);
pageRect.origin = CGPointZero;
UIGraphicsBeginImageContext(pageRect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetRGBFillColor(context, 1.0,1.0,1.0,1.0);
CGContextFillRect(context, pageRect);
CGContextTranslateCTM(context, 0.0, pageRect.size.height);
CGContextScaleCTM(context, 1.0, -1.0);
CGContextConcatCTM(context, CGPDFPageGetDrawingTransform(page, kCGPDFCropBox, pageRect, 0, true));
CGContextDrawPDFPage(context, page);
UIImage* image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}