У меня есть слепой друг, и я хотел бы дать ему почитать PDF-файл.
PDF-файл содержит около 200 страниц прекрасно оформленного текста (с несколькими картинками и рисунками, содержащими текст, но они достаточно редки, чтобы их можно было удалить вручную). К сожалению, логическая структура PDF-файла представлена плохо: PDF-файл не знает о двухколоночном текстовом потоке, и ни одна из записей индекса и таблицы содержания на самом деле не является ссылками.
У меня есть легкий доступ к машине с Linux и немного менее легкий доступ к машине с Windows XP, и я разбираюсь в регулярных выражениях и языках сценариев для автоматизации постобработки.
Пока что я нашел способ разрезать PDF пополам по вертикали (используя код изhttp://snipplr.com/view/18924/split-crop-double-page-pdfs-in-two/, после конвертации PDF в PDF1.4, чтобы не содержать crossrefstream или как там это называется), так что большая часть контента находится в правильном порядке, а затем используется pdftohtml
для извлечения текста с некоторой разметкой. К сожалению, это не может воспроизвести логическую структуру документа (он распознает некоторые курсивные обозначения, но уже теряет все заголовки глав, разделов и подразделов, которые всегда выделяются с помощью последовательного использования размера шрифта и цвета, не говоря уже о разрывах абзацев и т. д.)
Я возлагал большие надежды наКалибр, но этот инструмент преобразования также не может работать с плохо размеченными двухколоночными PDF-файлами, а также не может вывести структуру из используемых шрифтов, хотя у него есть некоторые преимущества для объединения абзацев.
Как преобразовать PDF-файл в формат, подходящий для доступа незрячих людей?