Sto provando a eseguire il rendering di una CGPDFPage (selezionata da un CGPDFDocument) in una UIImage da visualizzare su una vista.Rendering di una CGPDFPage in una UIImmagine
Ho il seguente codice in MonoTouch che mi porta parzialmente là.
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);
}
Una sezione di CGPDFPage viene visualizzata ma ruotata avanti e indietro e capovolta. La mia domanda è, come posso selezionare la pagina pdf completa e girarla per visualizzarla correttamente. Ho visto alcuni esempi utilizzando ScaleCTM e TranslateCTM ma non sembra che possano farli funzionare.
Eventuali esempi in ObjectiveC vanno bene, mi prendo tutto l'aiuto che posso ottenere :)
Grazie
Funziona alla grande, grazie! Portato su MonoTouch sembra qualcosa del genere https://gist.github.com/771759 –
Ciao Felz, sto usando il tuo codice per ottenere miniature in formato PDF. Sembra che CGContextConcatCTM (context, CGPDFPageGetDrawingTransform (page, kCGPDFMediaBox, pageRect, 0, true)) produca un collo di bottiglia nella memoria, ho scoperto che se lascio questa linea, allora è OK. Ma non posso lasciarlo perché ho bisogno di questo per un'anteprima corretta. Hai un'idea di come possiamo migliorare questo? Thx btw ... – aslisabanci
Solo una domanda: 'CGPDFPageRef page = [self getPage: page_number];' elimina un errore. In quale tipo di viewController è incorporato il codice? – DAS