PDFDestination не дает мне нужную информацию (Apple PDFKit)
У меня есть PDF-файл технического чертежа, который содержит одну страницу с закладками, связывающими определенные области документа.
Когда я щелкаю по этим закладкам в Adobe Reader или Foxit Reader, он приближается к указанной области. Но в Apple Preview.app, iBooks или iOS-приложении на основе PDFKit это не сработает. Даже PSPDFKit не может справиться с этими закладками.
Я строю PDFView
на основе iOS-приложения, которое может обрабатывать эти закладки. Когда я отлаживаю PDFOutline
свойство, которое я вижу, что содержится PDFDestination
Объект содержит информацию, но в приватных полях. Я могу смотреть их во время отладки.
Также, когда я получаю доступ к description
собственность PDFDestination
объект, я получаю следующее:
FitR, page = 0, l = 132.0, b = 451.0, r = 400.0, t = 724.0
Но ценности zoom
а также point
вернуть 3.40282347e+38F
что является максимальным значением CGFloat
на 32-битных системах это означает, что они не установлены должным образом.
PDFView
конфиг
Вот еще немного кода, показывающего, как я настроил свой PDFView
pdfView.document = document
pdfView.displayDirection = .horizontal
pdfView.autoScales = true
pdfView.usePageViewController(true, withViewOptions: nil)
pdfView.enableDataDetectors = false
pdfThumbnailView.thumbnailSize = CGSize(width: 44, height: 32)
pdfThumbnailView.pdfView = pdfView
pdfThumbnailView.layoutMode = .horizontal
Идти к PDFOutline
// Load the first outline element
let outline = document.outlineRoot?.child(at: 0)?.child(at: 0)
let destination = outline!.destination
// This way to access the destination yields in the same thing
let destinationViaAction = (outline?.action as? PDFActionGoTo)?.destination
// Nothing happens here...
pdfView.go(to: destinationViaAction!)
// nor here
pdfView.go(to: destination!)
Вопросы
- Это ошибка в PDFKit, что свойства
zoom
а такжеpoint
изPDFDestination
не правильно рассчитаны по этим существующим значениям врезки? - Могу ли я разобрать
description
изPDFDestination
и работать с этими ценностями? Или Apple откажется от моего приложения из-за доступа к личной информации?
Обновить
Я подал ошибку в Apple и обновлю этот вопрос, когда получу ответ.