急!!!怎样在iOS中对PDF文件合成
就是将一张图片粘贴到一个PDF文件上鼠标指示的位置,该怎样做?急!
[最优解释]
看起来事将一张图片粘帖过去,实际上这个PDF是需要重新绘制的。打开pdf的 PDFDocumentRef,再该页上绘制图片。
拿到原PDFDocumentRef:
CGPDFDocumentRef WQGetPDFDocumentRef(NSString *filename)
{
CFStringRef path;
CFURLRef url;
CGPDFDocumentRef document;
size_t count;
path = CFStringCreateWithCString (NULL, [filename UTF8String], kCFStringEncodingUTF8);
url = CFURLCreateWithFileSystemPath (NULL, path, kCFURLPOSIXPathStyle, 0);
CFRelease (path);
document = CGPDFDocumentCreateWithURL (url);
CFRelease(url);
count = CGPDFDocumentGetNumberOfPages (document);
if (count == 0) {
printf("[%s] needs at least one page!\n", [filename UTF8String]);
return NULL;
}
return document;
}
//给你封装个画图片上去的方法
void drawPicture(CGContextRef myContext,CGRect rect, UIImage *image)
{
CFDataRef imgData = (__bridge CFDataRef)(UIImagePNGRepresentation(image));
CGDataProviderRef dataProvider = CGDataProviderCreateWithCFData(imgData);
CGImageRef imageRef = CGImageCreateWithPNGDataProvider(dataProvider,
NULL,
NO,
kCGRenderingIntentDefault);
CGContextDrawImage(myContext, rect, imageRef);
CGDataProviderRelease(dataProvider);
CGImageRelease(imageRef);
}
void yourDrawPDFFunc(...)
{
...
//在BeginPage与EndPage之间绘制该页内容时调用
CGPDFContextBeginPage (pdfContext, pageDictionary);
//先绘制原页数据
//再调用drawPicture
CGPDFContextEndPage (pdfContext);
....
}
晚安。
[其他解释]
太感谢了,以后要常向版主请教!