【问题标题】:Not getting a right resolution of the page of PDF in iOS在 iOS 中无法获得 PDF 页面的正确分辨率
【发布时间】:2018-11-12 09:16:55
【问题描述】:

我想知道PDF页面的分辨率。我尝试了一种解决方案,但得到了错误的分辨率 (612 x 792)。但正确的分辨率是 816x1056

guard let provider = CGDataProvider(data: fileData as CFData) else { return }
guard let coreDocument = CGPDFDocument(provider) else { return }
guard let page = coreDocument.page(at: 0) else { return }

let size = page.getBoxRect(.mediaBox).size

【问题讨论】:

  • 试试let size = page.getBoxRect(.cropBox).size
  • @LeoDabus 的尺寸有误。
  • PDF 没有分辨率。仅如果有一个单页填充位图图像(没有旋转或倾斜),您可能会得出一些分辨率值。顺便说一下,一个 612 x 792 的裁剪框通常意味着一个字母大小的页面。
  • @mkl 谢谢,但是当我在 adobe 阅读器中查看时,分辨率为 816x1056。但通过上面的代码,我得到了 612 x 792 的分辨率。
  • “当我在 adobe 阅读器中查看时,分辨率为 816x1056” - 您在 Adob​​e Reader 中的哪个位置获得该分辨率?该“分辨率”最有可能为您提供以 px 为单位的页面尺寸,而上面的代码为您提供以 pt 为单位的页面尺寸,并且前者的数字等于后者的 4/3 倍。

标签: ios swift pdf cgpdfdocument


【解决方案1】:

您要查找的“分辨率”以 px (= 1/96 in) 为单位,而 PDF 中的尺寸以 pt (= 1/72 英寸)。

因此,您可以通过将 PDF 中的尺寸乘以 4/3 来计算所需的输出。


一些旁白...

严格来说,PDF 页面没有“分辨率”,因为 PDF 是矢量格式。当然,他们的页面有尺寸,这是你要确定的。

此外,您确实应该首先查找 CropBox,并且只有在没有它的情况下才使用 MediatBox。您可以阅读所有已定义的框 here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-29
    • 2015-01-13
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多