pdfKit

时间:2018-05-19 18:44:05

标签: ios swift pdfkit

我开始使用PDFKit,pdf文件位于根目录中,它使用以下代码:

if let path = Bundle.main.path(forResource: "mypdf1", ofType: "pdf") {
    let url = URL(fileURLWithPath: path)
    if let pdfDocument = PDFDocument(url: url) {
        pdfView.autoScales = true
        pdfView.displayMode = .singlePageContinuous
        pdfView.displayDirection = .vertical
        pdfView.document = pdfDocument
        print(path)
    }
}

但是,如果我更改目录中的pdf文件,例如" mydirectory",它不起作用,我的代码如下:

if let path = Bundle.main.path(forResource: "mypdf1", ofType: "pdf", inDirectory: "mydirectory") {
    let url = URL(fileURLWithPath: path)
    if let pdfDocument = PDFDocument(url: url) {
        pdfView.autoScales = true
        pdfView.displayMode = .singlePageContinuous
        pdfView.displayDirection = .vertical
        pdfView.document = pdfDocument

    }
}

修复路径问题的任何建议。

更新

根据建议,请尝试以下代码,但我无法将PDF可视化。

if let documentURL = Bundle.main.url(forResource: "mypdf1", withExtension: "pdf", subdirectory: "mydirectory") {
    if let document = PDFDocument(url: documentURL) {
        pdfView.autoScales = true
        pdfView.backgroundColor = UIColor.lightGray
        pdfView.document = document
    }
}

1 个答案:

答案 0 :(得分:1)

从子目录中读取pdf的代码是正确的,因为我读到它们在路径中得到一个nil,这是肯定的,因为您的容器文件夹尚未正确创建。你可以看到黄色和蓝色文件夹,你的容器文件夹应该是蓝色的。

要制作蓝色文件夹,您应该执行以下步骤:

  • 准备包含文件的文件夹结构。
  • 将该文件夹拖到xcode中,即项目导航平台。
  • 选择“为任何添加的文件夹创建文件夹引用”选项。
  • 最后点击添加。

您将获得蓝色的文件夹,您的代码可以阅读pdf。

  

Xcode中有两种类型的文件夹:组和文件夹引用。   您可以使用组来组织项目中的文件而不会影响   它们在实际文件系统上的结构。这非常适合代码,   因为你只会在Xcode中使用你的代码。上   另一方面,组对资源文件不是很好。

     

在任何相当复杂的项目中,您通常会处理   数十个 - 如果不是数百个 - 资产文件,那些资产将需要   要由你或者从Xcode外部进行修改和操作   设计师。将所有资源文件放在一个平面文件夹中是一个   灾难的秘诀。这是文件夹引用的来源。它们   允许您将文件组织到文件系统上的文件夹中   在Xcode中保留相同的文件夹结构。

蓝色用于表示“文件夹参考”。