Рисование UIImage с помощью CGRect в формате PDF из Core Data - PullRequest
0 голосов
/ 29 марта 2012

Я генерирую документ PDF на лету, используя данные, которые были выведены из моего графика основных данных, однако это оказывается довольно трудным.

Я использую библиотеку активов для получения пути к файлу изображения из графика основных данных, используя следующее:

NSURL *url = [[NSURL alloc] initWithString:bird.photo];
        ALAssetsLibrary* library = [[ALAssetsLibrary alloc] init];

        [library assetForURL:url resultBlock:^(ALAsset *asset) {

                     _pdfBirdmage = [UIImage imageWithCGImage:[[asset defaultRepresentation] fullResolutionImage]];


                 } failureBlock:^(NSError *error) {

                     NSLog(@"Couldn't load asset %@ => %@", error, [error localizedDescription]);

                 }];

И это показывает, что изображение выглядит следующим образом:

birdphotoview = <UIImage: 0x1caac0>

Очевидно, я хотел бы, чтобы это было в формате изображения, таком как PNG или JPG, чтобы записать его в документ PDF, используя следующий код:

[_pdfBirdImage drawInRect:CGRectMake( (pageSize.width - _pdfBirdImage.size.width/2)/2, 350, _pdfBirdImage.size.width/2, _pdfBirdImage.size.height/2)];

Однако, это ничего не печатает в PDF.

Любая помощь будет блестящей.

1 Ответ

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

Используете ли вы процедуры на основе CGPDF?Я думаю, что измерение Y противоположно в этом случае.Ранее я отображал PDF-файлы и накладывал данные сверху (а затем рендерил весь экран обратно на диск, но в виде изображения).Если это так, я должен был сначала преобразовать существующий PDF.Это не похоже на вашу проблему, но я не вижу здесь никакого PDF-кода, на который трудно ссылаться.Независимо, было что-то вместе:

UIGraphicsBeginImageContext(pdfPageRectScaled.size);
CGContextRef context = UIGraphicsGetCurrentContext();

// First fill the background with white.
CGContextSetRGBFillColor(context, 1.0f, 1.0f, 1.0f, 1.0f);
CGContextFillRect(context, pdfPageRectScaled);

CGContextSaveGState(context);
// Flip the context so that the PDF page is rendered
// right side up.
CGContextTranslateCTM(context, 0.0f, pdfPageRectScaled.size.height);
CGContextScaleCTM(context, 1.0f, -1.0f);

// Scale the context so that the PDF page is rendered 
// at the correct size for the zoom level.
CGContextScaleCTM(context, pdfScale, pdfScale); 
CGContextDrawPDFPage(context, page);
CGContextRestoreGState(context);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...