Я хочу разместить две страницы рядом на новой странице.
Для этого мне нужно масштабировать исходные страницы на половину размера и повернуть .pi/2.
Мне удалось добиться этого, преобразовав страницы PDF в UIImages и используя UIGraphicsImageRenderer. Но с критической потерей разрешения.
Я пытался улучшить разрешение, создавая изображения в формате jpegData(withCompressionQuality: 1.0), но безрезультатно.
Поэтому мне пришлось бы работать непосредственно со страницами PDF, используя формат CGPDFDocument.
Чтобы вставить одну масштабированную страницу, структура кода следующая:
Код: Выделить всё
if let _page = theCGPdfDocument.page(at: 1) {
var _pageRect: CGRect = _page.getBoxRect(CGPDFBox.mediaBox)
writeContextInDestination!.beginPage(mediaBox: &_pageRect)
// translate to compensate for the flip caused displacement
writeContextInDestination!.translateBy(x: _pageRect.size.width, y: _pageRect.size.height)
Scale (-1, -1) // rotate 180°
// add rotate as needed
writeContextInDestination!.scaleBy(x: -1, y: -1)
writeContextInDestination!.clip(to: _pageRect)
writeContextInDestination!.drawPDFPage(_page)
writeContextInDestination!.endPage() // end the current page
}
writeContextInDestination!.closePDF()
Я пробовал повторить строки с 7 по 11 для второй страницы в строке 13. Безуспешно.
В каком направлении искать?
Подробнее здесь: https://stackoverflow.com/questions/799 ... hout-loosi
Мобильная версия