pdfOutline of PDFKit in Objective-C

605 Views Asked by At

i try badly to extend (im a beginner with Objective-C) a pdf-viewer with PDF-included Outlines. The viewer is based on Apples PDFKit. (https://developer.apple.com/documentation/pdfkit/pdfoutline)

Thats what i have done so far:

    PDFPage *page = [_pdfDocument pageAtIndex:_pdfDocument.pageCount-1];
    PDFOutline *pdfOutline = [_pdfDocument outlineRoot];

    NSLog(@"LOG of pdfOutline");
    NSLog(@"%@", pdfOutline);
    NSLog(@"%i", pdfOutline.numberOfChildren);

Thats gives me the following Output:

[3685:9776989] LOG of pdfOutline
[3685:9776989] <PDFOutline: 0x60c000203370>
[3685:9776989] 4

So far so good, but I need somehow the labels and the page numbers in an jsonObject (its necessary cause of using it later in a react-native callback). Im even not sure what the output of "pdfOutline" is.

I really have no idea how to start. The goal is clear, generate an json-object from the outlines.

1

There are 1 best solutions below

0
On

That's just given you a pointer to the object. You need to use the pdfOutline.label method to get the text of the outline's label.

Outlines don't contain a page number, but a Destination object, which you can read using the .destination method; or an Action object. A Destination is a page number, page co-ordinates, and optional zoom level. An Action may be "Go to page", or a URL, or other.

Don't forget that page numbers in PDFKit start at 0, not 1. !!