У меня есть UIScrollView, который я хочу экспортировать в файл PDF. Вид прокрутки содержит другой вид (содержание), который фактически содержит видимое содержание:PDF из UIScrollView пуст
scrollView : UIScrollView
-> contentView : UIView
-> view1 : UIView
...
-> view2 : UIView
...
...
Код для экспорта PDF является:
func generatePDFData() -> NSData {
// I first tried to use the scroll view but the result was the same
let bounds = contentView.bounds
let pdfData = NSMutableData()
UIGraphicsBeginPDFContextToData(pdfData, bounds, nil)
let pdfContext = UIGraphicsGetCurrentContext()
CGContextSetInterpolationQuality(pdfContext, kCGInterpolationMedium)
CGContextSetRenderingIntent(pdfContext, kCGRenderingIntentDefault)
CGPDFContextBeginPage(pdfContext, nil)
// without the following two settings, the result remains the same
CGContextScaleCTM(pdfContext,1.0,-1.0)
CGContextTranslateCTM(pdfContext,0.0,-bounds.size.height)
contentView.layer.renderInContext(pdfContext)
UIGraphicsEndPDFContext()
return pdfData
}
Я затем использовать эти данные для создания PDF файл. Результирующий файл имеет размер около 120 КБ, поэтому я ожидаю, что он будет содержать некоторые вещи (представление не содержит никаких изображений). Однако, когда я пытаюсь открыть его, я просто получаю пустую страницу.
Кроме того, 'CGContextScaleCTM' и' CGContextTranslateCTM' должны быть вызваны до 'UIGraphicsBeginPDFPage()'. В противном случае параметры не влияют на результат. – Bastian