Skip to content

Instantly share code, notes, and snippets.

@chriseidhof
Created January 6, 2023 15:46
Show Gist options
  • Star 22 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save chriseidhof/e1a8b3efad617fe35eb9e8814f04de9d to your computer and use it in GitHub Desktop.
Save chriseidhof/e1a8b3efad617fe35eb9e8814f04de9d to your computer and use it in GitHub Desktop.
Image Rendering
import SwiftUI
extension View {
@MainActor
func pdf(size: ProposedViewSize) -> Data {
let renderer = ImageRenderer(content: self)
renderer.proposedSize = size
var pdfData = NSMutableData()
renderer.render { size, render in
var mediaBox = CGRect(origin: .zero, size: size)
let consumer = CGDataConsumer(data: pdfData)!
let pdfContext = CGContext(consumer: consumer, mediaBox: &mediaBox, nil)!
pdfContext.beginPage(mediaBox: &mediaBox)
render(pdfContext)
pdfContext.endPage()
pdfContext.closePDF()
}
return pdfData as Data
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment