Данные RotationAngle теряются при создании CGPDFPage
У меня с собой этот PDF-файл. Я использую следующий код для визуализации первой страницы этого PDF-файла.
let page = self.pdfDocument.page(at: 0 )! // get first page
let rotationAngle = page.rotation // this value is 90
let renderedPdfData = renderPDF(page: page.pageRef!)
где метод renderPDF,
func renderPDF(page: CGPDFPage) -> Data {
let pageRect = page.getBoxRect(.mediaBox)
let renderer = UIGraphicsPDFRenderer(bounds: pageRect)
return renderer.pdfData { (context) in
context.beginPage()
context.cgContext.setFillColor(UIColor.white.cgColor)
context.fill(pageRect)
context.cgContext.translateBy(x: 0.0, y: pageRect.size.height)
context.cgContext.scaleBy(x: 1, y: -1)
context.cgContext.drawPDFPage(page)
}
}
Позже я хочу создать
CGPDFPage
обратно с выше
renderedPdfData
. Для этого я использую следующий метод.
var newPage: CGPDFPage = createPDFPage(pdfData: renderedPdfData)
где метод createPDFPage,
func createPDFPage(pdfData: Data) -> CGPDFPage? {
guard let provider = CGDataProvider(data: pdfData as CFData) else {
return nil
}
guard let document = CGPDFDocument(provider) else {
return nil
}
// page starting at 1. The input PDF data only has 1 page.
return document.page(at: 1)
}
Но как мне установить
newPage
данные об угле поворота (т.е. 90)? Потому что "RotationAngle" - свойство только для получения. Поскольку я не установил для него значение, оно всегда равно 0.
let angle = newPage.rotationAngle // value is 0
Есть ли способ создать CGPDFPage с доступной информацией о ротации?