我的 PDF 位置在本地应用程序文件中的位置是啥? - 斯威夫特用户界面

Posted

技术标签:

【中文标题】我的 PDF 位置在本地应用程序文件中的位置是啥? - 斯威夫特用户界面【英文标题】:What will my PDF location be in local app files? - SwiftUI我的 PDF 位置在本地应用程序文件中的位置是什么? - 斯威夫特用户界面 【发布时间】:2020-12-04 08:44:42 【问题描述】:

我已经获得了一个函数,可以将视图从另一个堆栈溢出帖子 - https://***.com/a/60753437/12969913 转换为 PDF。有了这个,我正在使用另一个视图来尝试在一个新视图中显示 PDF,以便用户不可避免地按照他们的意愿共享和查看。

如何让我的 PDF 显示,我不知道 URL 是如何工作的以及我必须在新视图中添加什么。

网址是在exportToPDF()函数中创建的:

let documentDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
let outputFileURL = documentDirectory.appendingPathComponent("SwiftUI.pdf")

然后我从另一个堆栈溢出帖子中获取了一些代码来显示 PDF 并实现了 - https://***.com/a/61480852/12969913,但为了使其工作,我必须输入我的文件 URL,我该怎么做,以及文件 URL 是什么?

我的PDFKitView() 代码 - 显示新的 .pdf:

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.
    

然后我会使用:

HStack
    PDFKitView(url: ????????)
    Text("Hello World")

【问题讨论】:

【参考方案1】:

如果您将 PDF 文件直接拖放到您的 Xcode 项目中,您可以通过以下方式检索 URL:

guard let path = Bundle.main.path(forResource: "SwiftUI", ofType: "pdf") else  return 
let url = URL(fileURLWithPath: path)

【讨论】:

我无法让守卫工作,而是使用与设置位置相同的变量来查找我的 pdf 我已经使用 guard 来安全地解开可选值,如果你愿意,你可以跳过它。请注意强制展开 (!) 路径值。 Bundle.main.path 帮助您找到 PDF 文件了吗? 最后没用那个,我用let documentDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first! let fileURL = documentDirectory.appendingPathComponent("SwiftUI.pdf")

以上是关于我的 PDF 位置在本地应用程序文件中的位置是啥? - 斯威夫特用户界面的主要内容,如果未能解决你的问题,请参考以下文章

如何检查文件是不是存在,那么创建新文件的过程是啥? [复制]

Java操作PDF,在PDF文件指定位置输出水印

我的 sql 数据库在 html5 应用程序中的位置是啥

Java根据PDF中的关键字位置判定PDF文件是否合法

手机文件管理中的本地指的是啥

使用knitr和pandoc转换为PDF时markdown中的图形位置