Извлечение PDF Основные моменты с PDFKit - PullRequest
1 голос
/ 02 октября 2019

Я пытаюсь извлечь все основные моменты с помощью PDFkit в приложении MacOS. Вот код, который я использую:

guard let path = item.filePath else { return }

let document = PDFDocument(url: URL(fileURLWithPath: path))

guard let numberOfPage = document?.pageCount else { return }

for i in 0...numberOfPage - 1 {
   let pages = document?.page(at: i)
   guard let annotations = pages?.annotations else { continue }

   for annotation in annotations {
      if annotation.type == "Highlight" {
        print(annotation.contents)
        self.annotations.append(annotation)
      }
   }
}

Проблема в том, что print(annotation.contents) всегда возвращает "Необязательно (" ")". Я пробовал несколько PDF, и результат всегда одинаков. Дело в том, что если я сделаю print(annotation.color), он вернет правильный цвет заданных бликов.

Что-то не так с моим кодом, который я не понял? Или это нормальное поведение PDFKit?

1 Ответ

0 голосов
/ 03 октября 2019

Используйте PDFAnnotationSubtype.highlight.rawValue, чтобы получить ключ для основных моментов. Если вы напечатаете это значение, вы увидите, что оно /Highlight. Даже несмотря на то, что мы знаем ключ сейчас, вы все равно должны использовать значение enum на случай, если что-нибудь изменится в PDFKit.

enter image description here

Так что в вашемcase ...

if annotation.type == PDFAnnotationSubtype.highlight.rawValue {

Если вас это смущает, ознакомьтесь с Enums и Raw Values.

...