CGPDFDictionary keys

2019-02-20 12:14发布

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?

3条回答
三岁会撩人
2楼-- · 2019-02-20 12:48

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
查看更多
看我几分像从前
3楼-- · 2019-02-20 12:51

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.

查看更多
欢心
4楼-- · 2019-02-20 12:59

The Adobe PDF Reference describes all of the keys.

查看更多
登录 后发表回答