Witam,
Mam głupi problem z renderowaniem pdf'a. Wyswietlamy pdf ma wymiary >1300 px szerokości i >800px wysokosci wiec jest UIView w ktorym sie znajduje jest wiekszy niż szerokość ekranu. Ten też UIView wsadzony jest do UIScrollView.
Problem polega na tym, że przy renderowaniu wyświetlany jest jedynie obraz który znajduje się na ekranie na starcie. Czyli wszystko co poza ekranem przy rysowaniu juz nigdy nie zostanie narysowane.
W konsekwencji po scrollowaniu widać dużą czarną przestrzeń. Wyświetlił się tylko górny-lewy róg scrollview, a w nim znajdował się dolny-prawy róg pdf'a.
Mam nadzieje że ktoś mnie zrozumie, bo chyba troche to pokręcone![]()
Oto kawałek kodu:
Kod:- (void)drawRect:(CGRect)rect { CGContextRef ctx = UIGraphicsGetCurrentContext(); // PDF might be transparent, assume white paper [[UIColor whiteColor] set]; CGContextFillRect(ctx, rect); // Flip coordinates CGContextGetCTM(ctx); CGContextScaleCTM(ctx, 1, -1); CGContextTranslateCTM(ctx, 0, -self.frame.size.height); // rect -> self NSURL *url = [NSURL URLWithString:@"ciach!"]; // url is a file URL CGPDFDocumentRef pdf = CGPDFDocumentCreateWithURL((CFURLRef)url); CGPDFPageRef page1 = CGPDFDocumentGetPage(pdf, 1); // get the rectangle of the cropped inside CGRect mediaRect = CGPDFPageGetBoxRect(page1, kCGPDFMediaBox); CGContextScaleCTM(ctx, 2.0, 2.0); CGContextTranslateCTM(ctx, -mediaRect.origin.x, -mediaRect.origin.y); // draw it CGContextDrawPDFPage(ctx, page1); CGPDFDocumentRelease(pdf);




LinkBack URL
About LinkBacks

