1

Ich weiß, wie Sie die uiview in PDF speichern, aber mein Problem ist, wie Sie die gesamte uiview in PDF speichern, zum Beispiel wenn Sie eine Seite haben, die länger als iPad Display ist und Sie müssen scrollen es kann ich nur die aktive Ansicht in PDF-Datei speichern, aber der Rest existiert nicht. Ich suche nach Hilfe oder einem Tutorial, die mir helfen.Speichern der ganzen uiview in PDF

Vielen Dank im Voraus.

Antwort

1

Sie können einen Blick auf eine PDF wie folgt machen:

#define kDefaultPageHeight 1024 
#define kDefaultPageWidth 768 
#define kMargin 5 

CGRect origframe = someView.frame; 
NSString *heightStr = origFrame.size.height; 
int height = [heightStr intValue]; 

// Size of the view in the pdf page 
CGFloat maxHeight = kDefaultPageHeight - 2*kMargin; 
CGFloat maxWidth = kDefaultPageWidth - 2*kMargin; 
int pages = ceil(height/maxHeight); // or use 1 if you only have 1 page. 

UIGraphicsBeginPDFContextToFile(@"some/full/path.pdf", CGRectZero, nil); 
UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, kDefaultPageWidth, kDefaultPageHeight), nil); 
CGContextRef currentContext = UIGraphicsGetCurrentContext(); 
CGContextTranslateCTM(currentContext, kMargin, kMargin); 

/* this is the view that you will render to the PDF */ 
[someView.layer renderInContext:currentContext]; 

UIGraphicsEndPDFContext(); 

Natürlich ist dies ein grober Code-Snippet ist, müssen Sie anpassen, um Ihre Bedürfnisse

+1

Der Vollständigkeit passen, während 'renderInContext' ist die beste Antwort, es funktioniert möglicherweise nicht, wenn Sie bestimmte Funktionen von' CALayer' verwenden. Siehe [Masken auf Ansichtsebene nicht erfassen] (http://stackoverflow.com/q/9615235/1318452). – Dondragmer

+0

Lassen Sie mich das versuchen und wir werden sehen, aber bitte sagen Sie mir, speichert diese Codes die längere Seite? – user1021736

+0

Nur noch eine Sache, in diesem Code verwenden Sie CGRect, um th-Frame zu zeichnen und zu sehen, was passiert, wenn Sie Storyboard verwenden? wie man es implementiert? und wie man die anderen Ansichten zu dieser pdf als andere Seiten hinzufügt. – user1021736