Я понимаю, что этот вопрос довольно старый, но я заметил, что на него нет ответа.
PDF можно создать в iOS с помощью CoteText. Существует довольно хорошее руководство по созданию PDF-файла и добавлению в него текста в библиотеке разработчика Apple для iOS . Я обнаружил, что это руководство немного устарело и не дает полного ответа на этот вопрос, поэтому я собрал код, который охватывает создание PDF, рисование текста, рисование изображения и отображение PDF.
Приведенный ниже код нарисует PDF-файл с изображением и текстом. Затем сохраните его в предоставленном.
+(void)drawPDF:(NSString*)fileName
{
// Create the PDF context using the default page size of 612 x 792
UIGraphicsBeginPDFContextToFile(fileName, CGRectZero, nil);
// Mark the beginning of a new page with a sample size
UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, 612, 792), nil);
[self drawTextWithString:@"Hello World" inFrame:CGRectMake(20, 20, 300, 50)];
UIImage* image = [UIImage imageNamed:@"helloWorld.png"];
CGRect frame = CGRectMake(30, 30, 200, 50);
[self drawImage:image inRect:frame];
UIGraphicsEndPDFContext();
}
Это код, который рисует текст. Обратите внимание, что в нем не учитывается ограничение или перенос, поэтому, если строка больше рамки, она все равно будет нарисована.
+(void)drawTextWithString:(NSString *)stringToDraw inFrame:(CGRect)frameRect {
UIFont *theFont = [UIFont systemFontOfSize:12];
NSDictionary *attributes = @{ NSFontAttributeName: theFont};
// The text will be drawin in the frameRect, where (0,0) is the top left corner
[stringToDraw drawInRect:frameRect withAttributes:attributes];
}
И это код, который рисует изображение. Это довольно просто.
+(void)drawImage:(UIImage*)image inRect:(CGRect)rect {
[image drawInRect:rect];
}
Приведенная ниже функция будет отображать PDF с помощью UIWebView.
-(void)renderPdfFile:(NSString *)fileName
{
// This is here for demo purposes only. In a real world example the UIWebView
// will probably be linked directly from the story board
UIWebView* webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
NSURL *url = [NSURL fileURLWithPath:fileName];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView setScalesPageToFit:YES];
[webView loadRequest:request];
[self.view addSubview:webView];
}
Если вы заинтересованы в рендеринге PDF-файлов, у меня есть еще сообщения здесь , это может быть полезно.