Thank you, I now have this:
@MainActor func render() -> URL {
let renderer = [ImageRenderer(content: pdfView())]
let url = URL.documentsDirectory.appending(path: "output.pdf")
var view = CGRect(x: 0, y: 0, width: 2550, height: 3300)
guard let pdf = CGContext(url as CFURL, mediaBox: &view, nil) else {
return nil // error
}
for image in renderer {
image.render { size, context in
pdf.beginPDFPage(nil)
context(pdf)
pdf.endPDFPage()
}
}
pdf.closePDF()
}
I have two follow up questions:
I'm getting an error shown above for returning a nil value but I'm not sure how to otherwise handle the else statement.
I have a function pdfView that returns the view to be rendered. The syntax to return is -> some View { . Is it possible to return an array of views?