我无法将单个UIView中的PDF分成多个页面。我想尽量保持这个简单。我有一个高度不同的UIScrollView。截至目前,我可以正确显示第一页,但之后没有任何内容。我在这一点上很难过。这就是我所拥有的:
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();
我正试图遍历这个单一的UIScrollView并根据这个框架挑选出“页面”,但这并不完全正常。任何帮助,将不胜感激。我已经阅读了关于这个主题的苹果文档,并且在将其转换为我自己的应用程序时遇到了问题。
答案 0 :(得分: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();