Невозможно сохранить аннотации PDF
Моя миссия кажется простой. Измените текстовое значение существующей аннотации и сохраните его под новым именем файла (даже то же имя файла будет выполнено). Я успешно изменил аннотацию (подтверждено печатью в журнал сразу после его изменения), но пока я не смог сохранить его.
Я исследовал различные способы, предложенные сообществом для сохранения 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)
}
}
}
Я хотел бы иметь возможность сохранить новую аннотацию, чтобы я мог просматривать и распечатывать документ с исправленными аннотациями. Пока все, что я получаю, это первоначальная стоимость.