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