2014-01-20 5 views
2

단일 UIView에서 PDF를 여러 페이지로 나누는 데 문제가 있습니다. 나는 이것을 가능한 한 간단하게 유지하려고 노력하고있다. 나는 높이가 다를 수있는 UIScrollView 있습니다. 현재로서는 첫 페이지를 올바르게 표시 할 수 있지만 이후에는 아무 것도 표시 할 수 없습니다. 나는이 시점에서 꽤 난처한 상황이다. 여기에 내가 가진 무엇 :이 하나있는 UIScrollView를 통과하고이 프레임에 따라 "페이지"를 고르려고하나의 UIView에서 다중 페이지 PDF 생성하기

NSMutableData *pdfData = [NSMutableData data]; 

UIGraphicsBeginPDFContextToData(pdfData, CGRectZero, nil); 

CGContextRef pdfContext = UIGraphicsGetCurrentContext(); 
NSInteger pageHeight = 867; 

for (int originY = 0; originY < self.scrollView.contentSize.height; originY += pageHeight) { 

    // Start a new page. 
    UIGraphicsBeginPDFPageWithInfo(CGRectMake(0,originY,768,pageHeight), nil); 

    [self.scrollView.layer renderInContext:pdfContext]; 

    for (UIView *subview in self.scrollView.subviews) { 
     [subview.layer renderInContext:pdfContext]; 
    } 

} 

UIGraphicsEndPDFContext(); 

하지만 정확히 작동하지 않습니다. 어떤 도움을 주시면 감사하겠습니다. 이 주제에 대한 사과 문서를 읽었으며이를 내 자신의 응용 프로그램으로 번역하는 데 문제가있었습니다.

+0

해결 되었습니까? – GenieWanted

답변

3

이것은 나를 위해 꽤 잘 작동했습니다. 삶을 편하게하고 CGContextTranslateCTM를 호출하십시오.

NSInteger pageHeight = 792; // Standard page height - adjust as needed 
NSInteger pageWidth = 612; // Standard page width - adjust as needed 

/* CREATE PDF */ 
NSMutableData *pdfData = [NSMutableData data]; 
UIGraphicsBeginPDFContextToData(pdfData, CGRectMake(0,0,pageWidth,pageHeight), nil); 
CGContextRef pdfContext = UIGraphicsGetCurrentContext(); 
for (int page=0; pageHeight * page < scrollView.frame.size.height; page++) 
{ 
    UIGraphicsBeginPDFPage(); 
    CGContextTranslateCTM(pdfContext, 0, -pageHeight * page); 
    [scrollView.layer renderInContext:pdfContext]; 
} 

UIGraphicsEndPDFContext(); 
관련 문제