【问题标题】:XCode flipping pdf orientationXCode翻转pdf方向
【发布时间】:2013-07-20 11:02:55
【问题描述】:

我正在对 pdf 进行一些绘图,我发现 Xcode 处理 pdf 尺寸可能存在问题,然后在触发 CGPDFDocumentCreateWithURL 时变得清晰。

我有两个 PDF。一种是 A4 纵向尺寸(612w x 792h),显示效果很好。另一张更接近 A4 横向,842w x 595h。虽然它显示在我正在使用的 UIScrollview 中,但 CGContextTranslateCTM 中页面高度(pageRect.size.height)的垂直偏移导致它在视图中向下移动太远。我 NSlogged pageRect 的尺寸,发现高度和宽度被翻转了。然后,我查看了支持文档中的 pdf 列表,虽然将 pdf 清楚地显示为横向,但尺寸显示为 595x842,而 A4 纵向的正确尺寸为 612x792。

有没有其他人遇到过这个问题,是否有解决方法。

原始横向文件的链接是here

【问题讨论】:

    标签: pdf cgpdfdocument page-flipping


    【解决方案1】:

    您可以通过 2 种方式创建横向页面:

    1. 将宽度设置为 842,高度设置为 595 或
    2. 将宽度设置为 595,高度设置为 842,并将页面旋转 90/270 度。

    在您的情况下,我假设您有一个旋转的纵向页面 (2)。
    获得页面宽度和高度后,您还必须获得页面旋转,如果旋转为 90/270,则必须交换宽度/高度。
    您还必须考虑坐标系的原点。当页面不旋转时,原点在页面的视觉左下角,视觉上X从左到右增长,Y从下到上增长。当页面旋转90度时,原点在视觉左上角,视觉上X从上到下增长,Y从左到右增长。
    页面旋转时实际的PDF坐标系不会改变,改变的是PDF坐标系如何映射到您在屏幕上实际看到的,这就是“视觉上”的含义。

    【讨论】:

    • 我认为问题出现在PDF显示之前。我添加了屏幕截图来显示 Xcode 中发生的错误。当我在预览中显示 PDF 时,媒体和裁剪框的尺寸正确显示为 842x595,但在传输到 Xcode 时会翻转为 595x842
    • 贴一个横向文件的链接,我来看看。之后我可以给你更多的信息。
    • 完成 - 我已将链接包含在问题中。
    • 预览错误地显示媒体框和裁剪框。在您的文件中,/MediaBox 和 /CropBox 都是 [0 0 595.22 842],这些是 XCode 显示的值。该页面还包括 90 度的 /Rotate 条目(我的回答中的第二种情况)。 XCode 不显示此值,这会引起您的困惑,而 Preview 似乎会旋转媒体框和裁剪框并显示调整后的框。
    • 谢谢-我现在可以看到在 Finder 中获取信息,并且预览检查器显示不同的方向。然后我假设我使用 CGPDFPageGetRotationAngle 来询问 pdf 是否被翻转?
    猜你喜欢
    • 1970-01-01
    • 2020-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多