我有一个技术图纸的PDF文件,其中包含一页带有书签的页面,这些书签链接到文档的特定区域。
当我在Adobe Reader或Foxit Reader中单击这些书签时,它将缩放到该指定区域。但是在Apple的Preview.app或iBooks或基于PDFKit的iOS-App中,它将无法正常工作。甚至PSPDFKit也无法处理这些书签。
我正在构建一个基于PDFView
的iOS-App,可以处理这些书签。当我调试PDFOutline
属性时,我可以看到包含的PDFDestination
对象包含该信息,但包含在私有字段中。我可以在调试期间观看它们。
此外,当我访问description
对象的PDFDestination
属性时,我得到以下信息:
FitR, page = 0, l = 132.0, b = 451.0, r = 400.0, t = 724.0
但是值zoom
和point
返回3.40282347e+38F
,这是32位系统上CGFloat
的最大值,这意味着它们的设置不正确。
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!)
zoom
的属性point
和PDFDestination
不能被这些现有的插入值正确计算吗?description
中的PDFDestination
并使用这些值吗?还是苹果会因为访问私人信息而拒绝我的应用程序?我向Apple提交了一个错误,得到回复后将更新此问题。