以下函数将pdf文档的页面转换为NSImages。
@available(macOS 13.0, *)
func convertPDFPagesToImages(pdfDoc: PDFDocument)-> [NSImage] {
let pageCount = pdfDoc.pageCount
var images: [NSImage] = []
for i in 0..<pageCount {
let page = pdfDoc.page(at: i)
let pdfKitView = PDFKitView(pdfDoc: pdfDoc, viewSize: CGSize(width: 600, height: 814), currentPage: .constant(page))
let renderer = ImageRenderer(content: pdfKitView)
if let cgImage = renderer.cgImage {
let image = NSImage(cgImage: cgImage, size: NSSize(width: 600, height: 814))
images.append(image)
}
}
return images
}
错误:在作用域中找不到“ImageRenderer”。
我已经导入了SwiftUI。根据苹果的文档,图像渲染器应该可以从macOS 13中获得。这是一个bug还是我误解了@available装饰器?
1条答案
按热度按时间lyr7nygr1#
请检查您的Xcode版本。Xcode 14.1是支持macOS 13开发的第一个版本。Xcode 14.0仅支持macOS 12.3。因此,在Xcode 14.1+上,您的代码应该可以正常编译。
另一方面,Xcode 14.0确实支持iOS 16.0,因此可以在iOS平台上使用
ImageRenderer
。您可以自由地在
@available
属性中编写任何看起来合理的版本,但是如果您没有SDK,您当然不能使用该版本中的任何内容。