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