i am working on PDF annotation app i added PDF file annotation in iPhone it working fine it annotation also visible any reader but facing one issue How to get image from File Attachment Annotation in PDF file whose is created annotation from desktop how can do for this issue
i am using this code for get contents and location of annotation from File Attachment Annotation it working fine
CGPDFDictionaryRef pageDictionary = CGPDFPageGetDictionary(pPage);
// NSLog(@"%@",(NSDictionary*)pageDictionary);
CGPDFArrayRef outputArray;
if(!CGPDFDictionaryGetArray(pageDictionary, "Annots", &outputArray)) {
[pdfAnnots release];
return nil;
}
CGPDFArrayRef rectArray;
if(!CGPDFDictionaryGetArray(annotDict, "Rect", &rectArray)) {
break;
}
int arrayCount = CGPDFArrayGetCount( rectArray );
CGPDFReal coords[4];
for( int k = 0; k < arrayCount; ++k ) {
CGPDFObjectRef rectObj;
if(!CGPDFArrayGetObject(rectArray, k, &rectObj)) {
break;
}
CGPDFReal coord;
if(!CGPDFObjectGetValue(rectObj, kCGPDFObjectTypeReal, &coord)) {
break;
}
coords[k] = coord;
}
CGRect rect = CGRectMake(coords[0],coords[1],coords[2],coords[3]);
NSLog(@"%@",NSStringFromCGRect(rect));
Update
CGPDFDictionaryRef aDict;
if(CGPDFDictionaryGetDictionary(annotDict, "AP", &aDict))
{
CGPDFStreamRef textStringRef33;
if(CGPDFDictionaryGetStream(aDict, "N", &textStringRef33)) {
UIImage *image= getImageRef(textStringRef33);
CGPDFDataFormat *format = NULL;
CFDataRef contdata = CGPDFStreamCopyData( textStringRef33, format );
NSData *data=(NSData*)contdata;
}
please help me
Thank you in advance
finally get solution
CGPDFDictionaryRef aDict;
NSData *imagedata=nil;
if(CGPDFDictionaryGetDictionary(annotDict, "FS", &aDict))
{
CGPDFDictionaryRef embeddedFiles;
if (CGPDFDictionaryGetDictionary (aDict, "EF", &embeddedFiles) )
{
CGPDFStreamRef streamDict;
if (CGPDFDictionaryGetStream(embeddedFiles, "F", &streamDict))
{
CGPDFDataFormat *format = NULL;
CFDataRef xmlData;
xmlData = CGPDFStreamCopyData (streamDict, format);
imagedata=(NSData*)xmlData;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
savedImagePath = [documentsDirectory stringByAppendingPathComponent:[str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
[(NSData*)xmlData writeToFile:savedImagePath atomically:NO];
}
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With