我需要在 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)
| 归档时间: |
|
| 查看次数: |
385 次 |
| 最近记录: |