2013-03-13 7 views
1

J'essaie d'imprimer un UIView en format PDF. Le problème est que si le UIView est plus grand qu'une page, il est coupé. Donc, ce que je veux faire est de parcourir les "hauteurs de page" de l'UIView et les rendre chacun comme une page PDF.Diviser le contexte graphique UIView en zones

Voici mon code:

UIGraphicsBeginPDFContextToData(pdfData, CGRectMake(0, 0, 400, 782), nil); 
CGContextRef pdfContext = UIGraphicsGetCurrentContext(); 

UIGraphicsBeginPDFPage(); 

// draws rect to the view and thus this is captured by UIGraphicsBeginPDFContextToData 
[self.receiptContentView.layer renderInContext:pdfContext]; 

UIGraphicsBeginPDFPage(); 

// draws rect to the view and thus this is captured by UIGraphicsBeginPDFContextToData 
[self.receiptContentView.layer renderInContext:pdfContext]; 

// remove PDF rendering context 
UIGraphicsEndPDFContext(); 

De toute évidence au moment de sa juste rendre la même chose sur chaque page. Comment changer mon code ci-dessus pour dire "seulement imprimer le premier 782px sur la page 1 puis imprimer le NEXT 782px sur la page 2"?

Merci beaucoup.

Répondre

3

Essayez de transformer le contexte vers le haut au démarrage de chaque page.

CGContextBeginPDFPage(); 
CGContextTranslateCTM(pdfContext, 0.0, -782.0); 
[self.receiptContentView.layer renderInContext:pdfContext]; 
+0

Aha! Cela fonctionne brillamment. :) Je vous remercie. –

Questions connexes