就是将一张图片粘贴到一个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);
....
}
------其他解决方案--------------------
至于你提到的鼠标指示的位置,这个数据好传递吧? 注意坐标系的转换。
另外,提个建议:以后发帖尽量勿用“急!!”这种字眼,多些耐心描述清楚自己的问题,做了何种尝试,希望什么样效果,卡在哪里。一行字描述的问题,一般很少有人愿意参与回答和交流的。