Estoy tratando de renderizar un CGPDFPage (seleccionado de un CGPDFDocument) en un UIImage para mostrar en una vista.Renderizar un CGPDFPage en un UIImage
Tengo el siguiente código en MonoTouch que me lleva a la mitad.
RectangleF PDFRectangle = new RectangleF(0, 0, UIScreen.MainScreen.Bounds.Width, UIScreen.MainScreen.Bounds.Height);
public override void ViewDidLoad()
{
UIGraphics.BeginImageContext(new SizeF(PDFRectangle.Width, PDFRectangle.Height));
CGContext context = UIGraphics.GetCurrentContext();
context.SaveState();
CGPDFDocument pdfDoc = CGPDFDocument.FromFile("test.pdf");
CGPDFPage pdfPage = pdfDoc.GetPage(1);
context.DrawPDFPage(pdfPage);
UIImage testImage = UIGraphics.GetImageFromCurrentImageContext();
pdfDoc.Dispose();
context.RestoreState();
UIImageView imageView = new UIImageView(testImage);
UIGraphics.EndImageContext();
View.AddSubview(imageView);
}
Se muestra una sección de CGPDFPage pero girada hacia atrás y al revés. Mi pregunta es, ¿cómo selecciono la página completa de PDF y darle la vuelta para que se muestre correctamente? He visto algunos ejemplos que usan ScaleCTM y TranslateCTM pero parece que no funcionan.
Cualquier ejemplo en ObjectiveC están bien, voy a tomar toda la ayuda que pueda conseguir :)
Gracias
Funciona muy bien, gracias! Portado a MonoTouch se ve algo como esto https://gist.github.com/771759 –
Hola Felz, estoy usando tu código para obtener miniaturas de PDF. Parece que la línea CGContextConcatCTM (contexto, CGPDFPageGetDrawingTransform (página, kCGPDFMediaBox, pageRect, 0, verdadero)) produce un cuello de botella de memoria, descubrí que si dejo esta línea, entonces está bien. Pero no puedo dejarlo porque necesito esto para una miniatura adecuada. ¿Tienes alguna idea de cómo podemos mejorar esto? Thx btw ... – aslisabanci
Solo una pregunta: 'CGPDFPageRef page = [self getPage: page_number];' arroja un error. ¿En qué tipo de viewController está incrustado el código? – DAS