Я пытаюсь создать PDF-документ из сотен страниц представления SwiftUI. На данный момент мой подход следующий. Это работает нормально, но довольно медленно. Интересно, есть ли лучший способ сделать это, используя UIKit или какой-либо другой метод?
Код: Выделить всё
@MainActor
func renderPages() async {
let pathComponent = "example.pdf"
let url = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(pathComponent)
var box = CGRect(x: 0, y: 0, width: 1000, height: 500)
guard let pdf = CGContext(url as CFURL, mediaBox: &box, nil) else {
return
}
for pageIndex in pageIndices {
pdf.beginPDFPage(nil)
let renderer = ImageRenderer(content:
MySwiftUIView(index: pageIndex)
)
renderer.render { size, myContext in
myContext(pdf)
}
pdf.endPDFPage()
}
pdf.closePDF()
self.url = url
}
Источник: https://stackoverflow.com/questions/781 ... tui-to-pdf