使用CGRect从核心数据中以pdf格式绘制UIImage



我正在使用从核心数据图输出的数据动态生成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中。

任何帮助都是非常棒的。

您是否使用基于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);

最新更新