Próbuję renderować stronę CGPDF (wybraną z dokumentu CGPDFDocument) do obiektu UII, aby wyświetlić w widoku.Renderowanie strony CGPDF w UIImage
Mam następujący kod w MonoTouch, który doprowadza mnie częściowo do tego.
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);
}
Sekcja strony CGPDF jest wyświetlana, ale jest obracana od tyłu do przodu i do góry nogami. Moje pytanie brzmi: jak wybrać pełną stronę pdf i odwrócić ją, aby wyświetlić poprawnie. Widziałem kilka przykładów przy użyciu ScaleCTM i TranslateCTM, ale nie mogłem ich uruchomić.
Wszelkie przykłady w ObjectiveC są w porządku, wezmę wszelką pomoc mogę uzyskać :)
Thanks
Działa świetnie, dzięki! Przeniesiony do MonoTouch wygląda to tak: https://gist.github.com/771759 –
Witam Felz, używam Twojego kodu, aby uzyskać miniatury PDF. Wygląda na to, że linia CGContextConcatCTM (kontekst, CGPDFPageGetDrawingTransform (strona, kCGPDFMediaBox, pageRect, 0, true)) tworzy wąskie gardło pamięci, dowiedziałem się, że jeśli zostawię tę linię, to jest OK. Ale nie mogę tego pominąć, ponieważ potrzebuję tego dla odpowiedniej miniatury. Czy masz pomysł, jak możemy to poprawić? Thx btw ... – aslisabanci
Tylko jedno pytanie: 'CGPDFPageRef page = [self getPage: page_number];' wyrzuca błąd. Jakiego rodzaju viewController jest kod osadzony w? – DAS