我写了一个视图来呈现PDF页面:
-(UIPDFRenderView*) initWithFrame:(CGRect)frame withDocument:(CGPDFDocumentRef*)document withPageNumber:(int)pageNumber
{
if (self)
{
page = CGPDFDocumentGetPage (*document, pageNumber);
pageRect = CGPDFPageGetBoxRect(page, kCGPDFMediaBox);
pdfScale = (CGRectGetWidth(frame)/pageRect.size.width);
rect = frame;
self = [super initWithFrame:CGRectMake(CGRectGetMinX(frame),
CGRectGetMinY(frame),
CGRectGetWidth(frame),
CGRectGetHeight(pageRect) * pdfScale)];
}
return self;
}
-(void) drawRect:(CGRect)rect
{
[self displayPDFPageWithContext:UIGraphicsGetCurrentContext()];
}
-(void) displayPDFPageWithContext:(CGContextRef)context
{
CGContextSetRGBFillColor(context, 1.0,1.0,1.0,1.0);
CGContextFillRect(context, self.bounds);
CGContextSaveGState(context);
CGContextTranslateCTM(context, 0.0, self.bounds.size.height);
CGContextScaleCTM(context, pdfScale,-1*pdfScale);
CGContextDrawPDFPage (context, page);
}
我为pdf文档的每个页面使用该视图之一,并将它们添加到acrollview。 问题是如果我放大,页面是pixelig。毫不奇怪,因为我正在使用屏幕上下文来呈现pdf。是否有可能使用双倍分辨率渲染pdf以使zoomin达到2倍?
答案 0 :(得分:1)
好的,我得到了解决方案,我以原始大小渲染它并以低比例启动scollview,pdf的宽度与scrollview的宽度相匹配。使用那种方法我可以缩放到原始大小(比例为1)。