如何在swift macOS中从PDF旋转页面?

时间:2018-02-13 14:32:45

标签: swift macos cocoa pdf

我有一份PDF文档,我希望将所有页面旋转90度。我找到了一个解决方案here,但我无法使其发挥作用。 resoult PDF为空。任何帮助都会很棒。

这是我的代码:

guard let getCGPDFPage = pdfReference!.page(at: index) else {
                        NSLog("Error occurred in creating page")
                        return
                    }

                    page = getCGPDFPage
                    mediaBox = page.getBoxRect(.mediaBox)

                    // Get rotation angle and convert from degrees to radians:
                    let angle = CGFloat(page.rotationAngle) * CGFloat.pi / 180
                    // Apply rotation transform to media box:
                    var rotatedBox = mediaBox.applying(CGAffineTransform(rotationAngle: angle))

                    let m = page.getDrawingTransform(.mediaBox, rect: rotatedBox, rotate: 90, preserveAspectRatio: true)

                    writeContext?.concatenate(m)
                    writeContext?.clip(to: page.getBoxRect(.mediaBox))
                    writeContext?.beginPage(mediaBox: &rotatedBox)
                    writeContext?.drawPDFPage(page)
                    writeContext?.endPage()

1 个答案:

答案 0 :(得分:0)

旋转PDF文件页面的方法比使用CoreGraphics转换每个页面的上下文要简单得多。

使用PDFKit的PDFPage对象,该对象包含页面旋转的属性。您可以将其设置为90、180、270或0度。

https://developer.apple.com/documentation/pdfkit/pdfpage/1503443-rotation

请注意,CGPDFPageCGPDFDocumentPDFPagePDFDocument不同。