Через два дня, пытаясь прочитать аннотации из PDF с использованием Quartz, мне удалось это сделать, и разместил мой код.
Теперь я хотел бы сделать то же самое для другого часто задаваемого вопроса: поиск PDF-документов с помощью Quartz. В той же ситуации, что и раньше, этот вопрос задавался много раз практически без практических ответов. Поэтому сначала мне нужны некоторые указатели, поскольку я все еще не реализовал это сам.
Что я пробовал:
Я попытался использовать CGPDFScannerScan
для обработки операторов TJ
и TJ
- возвращает правильный текст в каком-то PDF файле, тогда как в других документах он возвращает в основном случайные буквы. Возможно, это связано с кодировкой текста?
Кто-то указал, что текстовые блоки (отмеченные операторами BT/ET) должны обрабатываться вместо этого, но мне все еще не удалось это сделать. Любому удалось извлечь текст из любого PDF?
После этого поиск должен быть простым, сохраняя весь текст в NSMutableString
и используя rangeOfString
(если есть лучший способ, сообщите мне).
Но тогда как выделить результат? Я знаю, что есть несколько операторов, чтобы найти размеры глифов, поэтому я мог рассчитать результирующий прямоугольник, основанный на этих значениях, но я читал спецификацию в течение нескольких часов... это раздутый беспорядок, и я схожу с ума. Кто-нибудь с практическим объяснением?
Update
Пользователь Naveen Thunga нашел PDFKitten, "рамки для извлечения данных из PDF файлов в iOS". Я просто попробовал демонстрацию и, похоже, работал как рекламируемый. Я проведу его с большим количеством PDF файлов и опубликую результаты в ближайшее время. В качестве побочного примечания, код кажется мне очень хорошим - если вас интересует, как этот материал работает, это довольно удивительно.