我有一种方法可以从CGPDFPageRef
返回UIImage
。您可以指定图像的宽度。当缩放> 1时渲染PDF时出现白色边框
问题是,当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;
}
谢谢。如果这个限制在文档中,那肯定会很好。 – Oded 2017-10-03 21:06:36