Невозможно сохранить аннотации PDF - PullRequest
0 голосов
/ 20 апреля 2019

Моя миссия кажется простой. Измените текстовое значение существующей аннотации и сохраните его под новым именем файла (даже то же имя файла будет выполнено). Я успешно изменил аннотацию (подтверждено печатью в журнал сразу после его изменения), но пока я не смог ее сохранить.

Я исследовал различные способы, предложенные сообществом для сохранения 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)
            }
        }
    }

Я хотел бы иметь возможность сохранить новую аннотацию, чтобы я мог как просматривать, так и распечатывать документ с исправленными аннотациями. Пока все, что я получаю, это первоначальное значение.

...