使用Swift 5 - PDFKit在iOS中编辑和保存现有的PDF文档

3

我一直在尝试编辑一个现有的PDF文件并将其保存到设备上。我已经尝试将编辑过的文件保存到与未编辑的文件相同的位置。但是该文件无法保存。相反,我收到了以下错误:

  • 尝试使用键保存字典:。字典键必须是字符串类型。
  • 无法为键/DR创建字典值。无效值。
  • 无法为注释键/DR保存值。无效类型。
  • 尝试使用键保存字典:。字典键必须是字符串类型。

以下是我的代码:

pdfView.document?.write(to: pdfView.document!.documentURL!)

如何使用PDFKit保存PDF文件中的编辑更改?


你好Kaushik,你找到解决方案了吗?在我的情况下,我能够将数据保存在新文件中,但仍然在调试区域收到与你一样的错误消息。 - Codicil
不,我还没有解决。 但我想到了一些方法。可以尝试删除旧文件并将新文件保存在该位置,而不是覆盖原文件。 同时,我们的需求已经改变,现在我只是使用“共享表单”(UIActivityViewController)保存从服务器下载的PDF文件。 因此,基本上我还不知道如何解决问题。 - Koushik Mudi
3个回答

2

这里是保存PDF文件的代码:

pdfView.document?.write(toFile: "Path To Save the File.")

如果您仍然无法保存更改,请重新检查保存PDF文件的路径。
而且在相同的文件夹中,我认为不能创建两个具有相同名称的文件。
在这种情况下,这是因为旧文件正在被新文件替换。

0

试试这个,也许可以解决你的问题

if let data = pdfDocument?.dataRepresentation(){

    
    let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
    let documentsDirectory = paths[0] // Get documents folder
    let folderPathUrl = URL(fileURLWithPath: documentsDirectory).appendingPathComponent("samplePdf.pdf")
    if FileManager.default.fileExists(atPath: folderPathUrl.path){
        try? FileManager.default.removeItem(at: folderPathUrl)

    }
    try? data.write(to: folderPathUrl)

}

0

我解决了这个问题,我的PDF表格也遇到了类似的问题。该表格最初是在Word中创建的,然后转换为PDF表格。 当我使用Adobe Acrobat DC从头开始创建PDF表格时,在PDF视图中正确地注释PDF并保存而没有出现上述问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接