Rendering UIImage/CGImage into CGPDFContext results in... blankness!
Posted
by quixoto
on Stack Overflow
See other posts from Stack Overflow
or by quixoto
Published on 2010-04-06T01:56:16Z
Indexed on
2010/04/06
2:03 UTC
Read the original article
Hit count: 585
Hi all, I'm trying to take an image that I have in a image object and render into a Core Graphics PDF context-- happens to be on an iPhone but this question surely applies equally to desktop Quartz. This UIImage is a simple color-on-white image at about 600x800 resolution. If I (say) turn it into a PNG file, that file looks exactly as expected-- so the data is OK.
Here's what I'm doing to generate the PDF:
NSMutableData * outputData = [[NSMutableData alloc] init];
CGDataConsumerRef dataConsumer = CGDataConsumerCreateWithCFData((CFMutableDataRef)outputData);
CFMutableDictionaryRef attrDictionary = NULL;
attrDictionary = CFDictionaryCreateMutable(NULL, 0,
&kCFTypeDictionaryKeyCallBacks,
&kCFTypeDictionaryValueCallBacks);
CFDictionarySetValue(attrDictionary, kCGPDFContextTitle, @"My Awesome Document");
CGContextRef pdfContext = CGPDFContextCreate(dataConsumer, NULL, attrDictionary);
CFRelease(dataConsumer);
CFRelease(attrDictionary);
CGImageRef pageImage = [myUIImage CGImage];
CGPDFContextBeginPage(pdfContext, NULL);
CGContextDrawImage(pdfContext, CGRectMake(0, 0, [myUIImage size].width, [myUIImage size].height), pageImage);
CGPDFContextEndPage(pdfContext);
CGContextRelease(pdfContext);
Resulting PDF, which ends up in outputData
, seems like a valid PDF file (opens correctly, document title is present in metadata), but it consists of precisely one blank page.
What am I doing wrong?
Thanks.
© Stack Overflow or respective owner