我的任务似乎很简单。更改现有注释的文本值,并将其保存在新文件名下(即使是相同的文件名也将是进度)。我已经成功更改了注释(更改后立即打印到日志中进行了验证),但到目前为止我还无法保存。
我研究了社区建议的保存PDF数据的各种方法,它们都向日志中抛出了相同的错误:
“ [未知进程名称]无法加载/System/Library/PrivateFrameworks/CorePDF.framework/Versions/A/CorePDF”
在调用data.write之后显示。我还尝试了pdfView.document?.write(to: docpath!)
和相关代码以使其正常工作,但出现了相同的错误。
它不会崩溃,但是当我重新启动应用程序以加载“新” PDF时,注释仍具有旧值。
我缺少明显的东西吗?
@IBAction func updatePressed(_ sender: Any) {
if let path = Bundle.main.path(forResource: "SOME_FILENAME", ofType: "pdf") {
let url = URL(fileURLWithPath: path)
if let pdfDocument = PDFDocument(url: url){
let page = pdfDocument.page(at: 0)
let annotations = page?.annotations
for annotation in annotations! {
if annotation.fieldName == "REMARKS 1" {
annotation.setValue("WHY ISN'T THIS WORKING", forAnnotationKey: .widgetValue)
page?.removeAnnotation(annotation)
page?.addAnnotation(annotation)
}
}
}
guard let url2 = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first,
let data = pdfView.document?.dataRepresentation() else {return}
let fileURL = url2.appendingPathComponent("SOME_OTHER_FILENAME")
do {
try data.write(to: fileURL)
} catch {
print(error.localizedDescription)
}
}
}
我希望能够保存新的注释,以便我可以查看和打印带有修改后的注释的文档。到目前为止,我得到的只是原始值。