2

I'm getting crazy, cause I cannot find what are the "default" keys you would have in a PDF Document.

For example, if I want to retrieve an hyperlink from a CGPDFDocument, I do this:

CGPDFStringRef uriStringRef;
if(!CGPDFDictionaryGetString(aDict, "URI", &uriStringRef)) {
    break;
}

In this case, the key is "URI". Is there a document explaining what are the keys of a CGPDFDictionary?

STW
  • 44,917
  • 17
  • 105
  • 161
S.C.
  • 2,844
  • 3
  • 26
  • 27

3 Answers3

13

It's absurd that you would have to go read 1300 page long specs just to find what keys a dictionary contains, a dictionary that could contain anything depending on what kind of annotation it is.

To get a list of keys in a CGPDFDictionaryRef you do:

// temporary C function to print out keys
void printPDFKeys(const char *key, CGPDFObjectRef ob, void *info) { 
    NSLog(@"key = %s", key);
}

In the place where you're trying to see the contents:

CGPDFDictionaryRef mysteriousDictionary; // this is your dictionary with keys
CGPDFDictionaryApplyFunction(mysteriousDictionary, printPDFKeys, NULL);
// break on or right after above, and you will have the list of keys NSLogged
Kalle
  • 13,186
  • 7
  • 61
  • 76
3

The Adobe PDF Reference describes all of the keys.

John Lemberger
  • 2,689
  • 26
  • 25
1

The keys in a dictionary depend on the actual object the dictionary represents (a page dictionary has other keys than an annotation dictionary). The Adobe PDF reference describes all these objects and their keys.

iPDFdev
  • 5,229
  • 2
  • 17
  • 18