Конвертировать скриншот в PDF в Xcode? - PullRequest
1 голос
/ 02 марта 2012

Как преобразовать снимок экрана, сделанный на iPhone, например, в файл PDF. Достаточно легко сделать снимок экрана и поместить его в UIImage, но это преобразование поставило меня в тупик. Я взглянул на платформу Quartz, которая является единственной в XCode, которая, как я знаю, поддерживает формат PDF, но не смогла найти там ничего, что могло бы помочь. Есть ли что-то родное для Xcode, которое я пропускаю? Если нет, то есть ли где-нибудь общедоступная структура, которая могла бы обработать преобразование, подобное этому?

Ответы [ 2 ]

1 голос
/ 05 марта 2012

Я понял это. Это включало сохранение скриншота в виде UIImage, а затем с помощью очень полезного учебника, найденного здесь , чтобы начать конвертацию в PDF. Оказывается, в классе Core Graphics есть функции для обработки документов PDF.

0 голосов
/ 02 марта 2012

Вы не конвертируете скриншот в pdf. Вы должны создать скриншот, создать PDF и вставить изображение скриншота на первую страницу PDF.

Непроверенный код для создания изображения:

nameStr = [NSString stringWithFormat:@"myImage.png"];
fileManager = [NSFileManager defaultManager];
paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
documentsDirectory = [paths objectAtIndex:0];
namePath = [documentsDirectory stringByAppendingString:@"/"];
namePath = [thumbnailPath nameStr];

CGRect contextRect  = CGRectMake(0, 0, 1024, 768);
UIGraphicsBeginImageContext(contextRect.size);  
[self.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

NSData *data = UIImagePNGRepresentation(viewImage);
UIImage *myImage    = [[UIImage alloc] initWithData:data];

Не проверенный код для добавления изображения в pdf:

pageSize = CGSizeMake(1024, 768);
fileName = @"myFile.pdf";
pdfFileName = [documentsDirectory stringByAppendingPathComponent:fileName];

UIGraphicsBeginPDFContextToFile(pdfFileName, CGRectZero, nil);
UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, pageSize.width, pageSize.height), nil);

[myImage drawInRect:CGRectMake( 0, 0, 1024, 768];
UIGraphicsEndPDFContext();

p.s. при условии, что ipad 1024 x 768 выше

...