首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PDF编辑器/在SwiftUI中绘制PDF

PDF编辑器/在SwiftUI中绘制PDF
EN

Stack Overflow用户
提问于 2021-03-05 09:41:14
回答 1查看 639关注 0票数 1

我正在寻找一个在SwiftUI应用程序中查看和编辑PDF文件的解决方案。最重要的是,应该赋予它签署PDF/使用它的功能。有办法这样做吗?我是Swift开发的新手,所以我同时学习SwiftUI / UIKit。因此,我很难用UIKit编写SwiftUI代码的包装器。“我的代码”可以显示PDF,但到目前为止无法编辑:

代码语言:javascript
复制
import Foundation
import SwiftUI
import UIKit
import PDFKit


struct PDFKitView: View {
    var url: URL
    var body: some View {
        PDFKitRepresentedView(url)
    }
}

struct PDFKitRepresentedView: UIViewRepresentable {
    let url: URL
    
    init(_ url: URL) {
        self.url = url
        
    }

    func makeUIView(context: UIViewRepresentableContext<PDFKitRepresentedView>) -> PDFKitRepresentedView.UIViewType {
        let pdfView = PDFView()
        
        pdfView.document = PDFDocument(url: self.url)
        pdfView.autoScales = true
        
        return pdfView
    }

    func updateUIView(_ uiView: UIView, context: UIViewRepresentableContext<PDFKitRepresentedView>) {
        // Update the view.
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-23 13:15:45

我已经找到解决办法了。我使用了PDFFreedraw回购从ClassicalDude在GitHub上。这是一个实现良好的开源解决方案。那时,我能够为像这样的快速UI编写一个包装器。

https://github.com/ClassicalDude/pdfView-Freedraw

示例截图

代码语言:javascript
复制
import Foundation
import SwiftUI
import UIKit
import PDFKit


struct PDFKitEditorView: View {
    var url: URL
    var body: some View {
        PDFKitEditorRepresentedView(url)
            .ignoresSafeArea(.all)
            .navigationBarHidden(true)
    }
}

struct PDFKitEditorRepresentedView: UIViewControllerRepresentable {
    
    let url: URL
    
    init(_ url: URL) {
        self.url = url
    }
    
    func makeUIViewController(context: Context) -> UIViewController {
        
        let storyboard = UIStoryboard(name: "MainPDFView", bundle: Bundle.main)
        let controller = storyboard.instantiateViewController(withIdentifier: "PDFViewControllerID") as? PDFViewController
        controller!.url = self.url
        
        return controller!
    }
    
    func updateUIViewController(_ uiViewController: UIViewController, context: Context) {
        
    }
    
   
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66490129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档