我正在尝试使用 Swift 创建一个简单的 PDF。我收到一个错误:在“可选”上引用静态方法“buildBlock”要求“UIView”符合“视图”
可能做错了很多事情。我想我需要能够以某种方式将 UIView 更改为要显示的视图。
我的代码如下:
import SwiftUI
import PDFKit
public var documentData: Data?
let pdfView = PDFView()
func myPDF() -> Data {
let pdfMetaData = [
kCGPDFContextCreator: "my PDF",
kCGPDFContextAuthor: "etienne"
]
let format = UIGraphicsPDFRendererFormat()
format.documentInfo = pdfMetaData as [String: Any]
let pageWidth = 8.5 * 72.0
let pageHeight = 11 * 72.0
let pageRect = CGRect(x: 0, y: 0, width: pageWidth, height: pageHeight)
let renderer = UIGraphicsPDFRenderer(bounds: pageRect, format: format)
let data = renderer.pdfData { (context) in
context.beginPage()
let attributes = [
NSAttributedString.Key.font: UIFont.boldSystemFont(ofSize: 72)
]
let text = "Hello World!"
text.draw(at: CGPoint(x: 0, y: 0), withAttributes: attributes)
}
return data
}
struct ContentView: View {
var body: some View {
Text("Hello, world!")
.padding()
.onAppear(perform: {
if let data = documentData {
pdfView.document = PDFDocument(data: createFlyer())
pdfView.autoScales = true
}
})
pdfView.documentView
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}