🌀Image+
在 Swift Playgrounds for iPad 中使用 PDF 圖檔。
🌀 Image(pdf: url)

import SwiftUI
// 🌀Image(pdf: url)
extension Image {
    
    public init?(pdf url: URL) {
        
        guard 
            let doc  = CGPDFDocument(url as CFURL),
            let page = doc .page(at: 1) 
            else { return nil }
        
        let pageRect = page.getBoxRect(.mediaBox)
        let renderer = UIGraphicsImageRenderer(size: pageRect.size)
        
        let img = renderer.image { ctx in
            UIColor.clear.set()
            ctx.fill(pageRect)
            ctx.cgContext.translateBy(x: 0.0, y: pageRect.size.height)
            ctx.cgContext.scaleBy(x: 1.0, y: -1.0)
            ctx.cgContext.drawPDFPage(page)
        }
        
        self = Image(uiImage: img)
    }
}import SwiftUI
import PlaygroundSupport
struct ContentView: View {
    var body: some View {
        VStack {
            Image(pdf: #fileLiteral(resourceName: "Card1.pdf"))
            Image(pdf: #fileLiteral(resourceName: "Card3.pdf"))
        }// container
            .padding()
            .shadow(radius: 8)
            .background(Color.gray)
            .cornerRadius(10)
    }
}
PlaygroundPage.current.setLiveView(ContentView())- Playground with PDF - Apple Dev Forums 
- PDF Generation in Swift Playground - StackOverflow 
使用前,必須先將 PDF 檔匯入 Swift Playgrounds 中:

插入 PDF 檔時,雖然只會出現一個奇怪的小圖,但它背後其實是一個 #fileLiteral (檔名不會顯示出來,除非放在附註區),它的真正型別是 URL。 👉 Swift Literals - NSHipster ⭐

Last updated
Was this helpful?