图像没有在pdf预览中显示?

时间:2015-08-14 05:44:29

标签: objective-c xcode pdf

奇怪的是,如果我想在控制器旁边的图像上预览pdf,我可以让它工作的唯一方法是使用前一个视图控制器中定义的segue,也许我不清楚。如何让一个图像显示在QuickLook动作的预览上,而不必进入视图而不仅仅是模态?这是合乎逻辑的吗?

我开发了一个生成PDF的应用程序,我可以让用户预览它们......但是当它们有图像时......我的图像会从预览中消失...除非我使用segue然后没问题,但看起来很奇怪。有什么建议吗?....提前感谢...

1 个答案:

答案 0 :(得分:0)

- (CFRange)renderPage:(NSInteger)pageNum withTextRange:(CFRange)currentRange
   andFramesetter:(CTFramesetterRef)framesetter
{

CGContextRef    currentContext = UIGraphicsGetCurrentContext();

// Put the text matrix into a known state. This ensures
// that no old scaling factors are left in place.
CGContextSetTextMatrix(currentContext, CGAffineTransformIdentity);

// Create a path object to enclose the text. Use 72 point
// margins all around the text.

#pragma-----------here to disclose the height of text on pdf preview

CGRect    frameRect = CGRectMake(40, 72, 468,  350);
CGMutablePathRef framePath = CGPathCreateMutable();
CGPathAddRect(framePath, NULL, frameRect);

[_imageView1 setImage:theImage1];

CGRect frame = CGRectMake(40, 50, 130, 130);
[ProgramPDFViewController drawImage:theImage1 inRect:frame];

CGSize size = theImage1.size;
CGFloat ratio = 0;
if (size.width > size.height) {
    ratio = 44.0 / size.width;
} else {
    ratio = 44.0 / size.height;
}
CGRect rect = CGRectMake(0.0, 0.0, ratio * size.width, ratio * size.height);


UIGraphicsBeginImageContext(rect.size);
[theImage1 drawInRect:rect];
UIGraphicsEndImageContext();
CTFrameRef frameRef = CTFramesetterCreateFrame(framesetter, currentRange, framePath, NULL);
CGPathRelease(framePath);
CGContextTranslateCTM(currentContext, 0, kDefaultPageHeight);
CGContextScaleCTM(currentContext, 1.0, -1.0);
 CTFrameDraw(frameRef, currentContext);
currentRange = CTFrameGetVisibleStringRange(frameRef);
currentRange.location += currentRange.length;
currentRange.length = 0;
CFRelease(frameRef);

return currentRange;
}