Je commence tout juste à créer une application qui affichera des documents PDF. J'ai expérimenté, sous-classe UIView et en utilisant le code de la démo de pommes. J'ai un document PDF qui contient une image de 1024 x 748 pixels à 131 ppi, de sorte qu'il DEVRAIT remplir l'écran de l'iPad en mode paysage. Lorsque je lance l'application, le pdf est mis à l'échelle à environ 0,25% de sa taille réelle, centrée sur l'écran de l'iPad. Pourquoi le PDF n'est-il pas affiché en taille réelle?CGPDFDocument mise à l'échelle
code de mon UIView personnalisé:
-(id)initWithFrame:(CGRect)frame PDFName:(NSString *)pdfName
{
self = [super initWithFrame:frame];
if(self != nil)
{
self.backgroundColor = [UIColor blueColor];
self.opaque = YES;
self.clearsContextBeforeDrawing = YES;
CFURLRef pdfURL = CFBundleCopyResourceURL(CFBundleGetMainBundle(), (CFStringRef)pdfName, NULL, NULL);
pdf = CGPDFDocumentCreateWithURL((CFURLRef)pdfURL);
CFRelease(pdfURL);
}
return self;
}
- (void)drawRect:(CGRect)rect {
// PDF page drawing expects a Lower-Left coordinate system, so we flip the coordinate system
// before we start drawing.
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextTranslateCTM(context, 0.0, self.bounds.size.height);
CGContextScaleCTM(context, 1.0, -1.0);
// Grab the first PDF page
CGPDFPageRef page = CGPDFDocumentGetPage(pdf, 1);
// We're about to modify the context CTM to draw the PDF page where we want it, so save the graphics state in case we want to do more drawing
CGContextSaveGState(context);
// CGPDFPageGetDrawingTransform provides an easy way to get the transform for a PDF page. It will scale down to fit, including any
// base rotations necessary to display the PDF page correctly.
CGAffineTransform pdfTransform = CGPDFPageGetDrawingTransform(page, kCGPDFMediaBox, self.bounds, 0, true);
// And apply the transform.
CGContextConcatCTM(context, pdfTransform);
// Finally, we draw the page and restore the graphics state for further manipulations!
CGContextDrawPDFPage(context, page);
CGContextRestoreGState(context);
}
PPI n'a rien à voir avec cela. Les chances sont que votre résolution PDF initiale était la boîte de délimitation normale de 612 × 792. Changer la limite de l'image fixe le problème pour un PDF, mais la vraie réponse repose sur le changement des valeurs de la transformation pdf, ou étirement/mise à l'échelle de la vue pdf ou la super vue. – J2theC