如何在 macOS 上将 swiftUI 视图导出为 PDF 文件

Hub*_*ert 5 pdf macos swiftui

我需要在 macOS big sur 上将 swifUIview 导出为 PDF 文件。这是我正在使用的功能:

func exportPDF() {
        let testView = TestView()
        let hostingView = NSHostingView(rootView: testView)
        hostingView.frame = .init(origin: .zero, size: .init(width: 800, height: 1200))
        do {
            let pdfData = hostingView.dataWithPDF(inside: hostingView.bounds)
            
            let savePanel = NSSavePanel()
            savePanel.allowedFileTypes = ["PDF"]
            savePanel.canCreateDirectories = true
            savePanel.isExtensionHidden = false
            savePanel.allowsOtherFileTypes = false
            savePanel.title = "Save your text"
            savePanel.message = "Choose a folder and a name to store your text."
            savePanel.nameFieldLabel = "File name:"
            let response = savePanel.runModal()
            if response == .OK {
                let urlDuPDF = savePanel.url
                guard let urlDuPDF = urlDuPDF else { return }
                try pdfData.write(to: urlDuPDF)
            }
Run Code Online (Sandbox Code Playgroud)

这个函数在这个简单的结构中运行得很好:

struct TestView: View {
    var body: some View {
        VStack {
            Text("Test view for PDF")
            Text("Test view for PDF")
          
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,它不能用这个结构运行(图像/宽度:300,高度:300)

struct TestView: View {
    var body: some View {
        VStack {
            Text("Test view for PDF")
            Image("eau")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)