iphone - tipo - problema con la representación de pdf en toda la pantalla de pdf
porque no puedo descargar archivos pdf en mi android (3)
Las páginas en archivos PDF no tienen un tamaño estándar. Y dado que está calculando la escala para mantener la relación de aspecto correcta, no todos sus archivos PDF ocuparán toda la pantalla.
Según su código anterior, puede hacer que todos los archivos PDF se ajusten a toda la pantalla cambiando
CGContextConcatCTM(ctx, CGAffineTransformMakeScale(scaleToApply, scaleToApply));
a
CGContextConcatCTM(ctx, CGAffineTransformMakeScale(xScale, yScale));
Sin embargo, esto arruinará la relación de aspecto.
Hola, todos probé de muchas maneras para imprimir un pdf de acuerdo con el tamaño del libro en PDF. También busqué en muchos enlaces y muchos códigos, como apple codes, github y muchos de esos tipos de sitios pero sin uso. Esta pregunta es un duplicado de muchas preguntas y respuestas, pero aún así no obtuve el resultado exacto. Mi código se parece a esto
(void) drawLayer: (CALayer *) layer inContext: (CGContextRef) ctx {
if (UIInterfaceOrientationIsPortrait ([self interfaceOrientation])) {layer.backgroundColor = [UIColor blackColor]; myPageRef = CGPDFDocumentGetPage (myDocumentRef, c);CGSize pageSize = [kbDataSource pageSize]; GLogInfo(@"the page ize we are getting in draw layer is %@ ",NSStringFromCGSize(pageSize)); //CGContextSaveGState(ctx); CGSize aspectFitSize = [self getPageFitSizeOfSize:pageSize inSize:CGSizeMake(self.view.bounds.size.width, self.view.bounds.size.height- __TOP_BRANDING_BAR_HEIGHT)]; CGContextSetRGBFillColor(ctx, 1.0, 1.0, 1.0, 1.0); CGContextFillRect(ctx, CGContextGetClipBoundingBox(ctx)); GLogDebug(@"aspect fitsize of image to %@", NSStringFromCGSize(aspectFitSize)); NSLog(@"layer bounds are:%@ %@ ",NSStringFromCGSize(layer.bounds.size),NSStringFromCGPoint(layer.bounds.origin)); NSLog(@"page size of the book is:%@",NSStringFromCGSize(pageSize)); CGFloat aspectRatio=pageSize.width/pageSize.height; CGRect cropBox = CGPDFPageGetBoxRect(myPageRef, kCGPDFCropBox); CGRect targetRect = layer.bounds; CGFloat xScale = targetRect.size.width / cropBox.size.width; CGFloat yScale = (targetRect.size.height-41) / cropBox.size.height; CGFloat scaleToApply = (xScale < yScale) ? xScale : yScale; CGContextTranslateCTM(ctx, 0.0, -41+layer.bounds.size.height); CGContextScaleCTM(ctx, 1.0, -1.0); NSLog(@"the crop box values are %@",NSStringFromCGRect(cropBox)); NSLog(@"the crop box values are %f",cropBox.origin.x); NSLog(@"the scaleToApply is %f",scaleToApply); NSLog(@"the view bounds are %@",[self.view description]); if (scaleToApply == yScale) CGContextConcatCTM(ctx, CGAffineTransformMakeTranslation(-100, -150)); else CGContextConcatCTM(ctx, CGAffineTransformMakeTranslation(-180, -260)); CGContextConcatCTM(ctx, CGAffineTransformMakeScale(scaleToApply, scaleToApply)); CGContextConcatCTM(ctx, CGPDFPageGetDrawingTransform(myPageRef, kCGPDFCropBox, layer.bounds, 0, true)); CGContextSetInterpolationQuality(ctx, kCGInterpolationHigh); CGContextSetRenderingIntent(ctx, kCGRenderingIntentDefault); CGContextDrawPDFPage(ctx, myPageRef);
}
Pegué todo el código que probé en Drawlayer. Di muchos números aleatorios para que se ajustara a la pantalla entera de la página, finalmente obtuve solo ocho libros (pdfs).
Mi objetivo es imprimir cualquier pdf con la cobertura completa de la pantalla del ipad. mi resultado es solo para unos pocos pdfs.can que alguien me diga la razón exacta de por qué está sucediendo y también dígame el código exacto para imprimir el pdf en la pantalla completa de ipad.
gracias a todos.
¿Por qué no usar el UIDocumentInteractionController para visualizar el PDF? Sería mucho más fácil que intentar renderizar el PDF como eres? He usado UIDocumentInteractionController en varias instancias para previsualizar archivos PDF, documentos de Word, powerpoints, etc.
Compruébalo AQUÍ.
Esto puede darle lo que necesita (llene toda la pantalla con el PDF). También le permitirá imprimir el documento y abrirlo en otra aplicación si es necesario ...
Hay una manera simple de leer un PDF en iPhone / iPad: 1.Tome un UIwebView (nombre: pdfView). 2. Dale una conexión a Iboutlet y delegalo a FilesOwner 3.En Viewdidload
[self.pdfView loadRequest: [solicitud de petición NSURLWithURL: [NSURL fileURLWithPath: [[NSBundle mainBundle] pathForResource: @ "ObjC" ofType: @ "pdf"]]]];
4.ObjC.pdf debe estar en la carpeta de recursos ... Ahora, para ajustar la página de pdf de diferentes tamaños a la pantalla del iPad, solo abra el archivo respectivo .xib luego vaya al inspector de UIwebView luego a los atributos de vista web y allí marque la página de escalas opción de ajuste