我有一種方法可以從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