我的问题是我必须创建一个我的屏幕文本的pdf。我的视图包含一个可滚动的文本视图。我的视图上有许多控件,如日期标签,位置标签等..和文本视图。我是能够创建我的文本视图填充文本的PDF文件,但我不知道如何在我的PDF页面中添加日期标签,位置标签和其他文本视图的东西。 我的pdf创建代码是:
CGRect savedFrame = txtView.frame;
UIGraphicsBeginImageContext(txtView.contentSize);
{
CGPoint savedContentOffset = txtView.contentOffset;
txtView.contentOffset = CGPointZero;
txtView.frame = CGRectMake(0, 0, txtJEntry.contentSize.width, txtView.contentSize.height);
CGRect f = txtView.frame;
CGContextRef ctx = CGPDFContextCreateWithURL((__bridge CFURLRef)[NSURL fileURLWithPath:newFilePath isDirectory:NO], &f, NULL);
CGPDFContextBeginPage(ctx, NULL);
CGContextScaleCTM(ctx, 1, -1);
CGContextTranslateCTM(ctx, 0, -txtView.frame.size.height);
[txtJEntry.layer renderInContext:ctx];
CGPDFContextEndPage(ctx);
CFRelease(ctx);
txtJEntry.contentOffset = savedContentOffset;
txtJEntry.frame = savedFrame;
}
UIGraphicsEndImageContext();
如图所示,它是我的视图的屏幕截图。我需要在我的pdf中添加天气,位置星和日期,因为图中显示的意思是这些标签的位置也应相同pdf。 我无法截取整个屏幕的截图,因为文本视图文本是可滚动的,并且有更多数据。
请在我的pdf中帮助我如何显示这些内容。
任何建议都将受到高度赞赏。 提前谢谢!
答案 0 :(得分:0)
根据我的理解,您想要获取UIView的全部内容并将其转换为PDF。我有一个UIView
类别,可以将视图中的所有内容呈现为PDF文件。我在我的一个应用程序中成功使用它。
//UIView+RenderPDF.h
@interface UIView (RenderPDF)
- (void)renderInPDFFile:(NSString*)path;
@end
//UIView+RenderPDF.m
#import "UIView+RenderPDF.h"
#import <QuartzCore/QuartzCore.h>
@implementation UIView (RenderPDF)
- (void)renderInPDFFile:(NSString*)path {
CGRect mediaBox = self.bounds;
CGContextRef ctx = CGPDFContextCreateWithURL((CFURLRef)[NSURL fileURLWithPath:path isDirectory:NO], &mediaBox, NULL);
CGPDFContextBeginPage(ctx, NULL);
CGContextScaleCTM(ctx, 1, -1);
CGContextTranslateCTM(ctx, 0, -mediaBox.size.height);
[self.layer renderInContext:ctx];
CGPDFContextEndPage(ctx);
CFRelease(ctx);
}
@end
现在,为了使用它,一旦你#import UIView+RenderPDF.h
所有你需要做的就是
NSArray* documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);
NSString* documentDirectory = [documentDirectories objectAtIndex:0];
NSString* documentDirectoryFilename = [documentDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"export.pdf"]];
[someView renderInPDFFile:documentDirectoryFilename];
导致export.pdf
保存到您的Documents
目录。您在PDF
文件视图中所有元素的屏幕截图。
希望这有帮助!