У меня есть несколько предложений, но реализовать это будет непросто.Удачи!
Первый подход:
Сначала используйте библиотеку типа pdf-renderer (https://pdf -renderer.dev.java.net / ) для преобразованияPDF в изображение.Храните эти изображения на вашем сервере или используйте технику кеширования.Преобразование PDF в изображение не сложно.
Затем используйте библиотеку JavaScript Type Select (http://www.typeselect.org/)) для наложения текстовых данных на ваш текст. Этот текст можно выбрать, пока реальный текст все еще находится висходное изображение. Чтобы получить исходный текст, посмотрите следующий подход или сделайте это сами, см. заключение.
Исходный текст затем должен быть наложен на изображение, что является болью.
Второй подход:
Спецификации PDF позволяют связывать текстовую информацию со шрифтом. Большинство документов используют подмножество шрифтов Type-3 или Type-1, которые (часто) используют стандартный набор символов (я думалэто был Unicode, но не уверен) .Если ваш PDF-документ не содержит стандартный набор символов (то есть он определил свой собственный), невозможно узнать, какие символы являются какими глифами (символами) и, следовательно, вы не можете преобразовать втекстовое представление.
Прочитайте документ PDF, прочитайте графические объекты, проанализируйте инструкции (используйте спецификацию PDF для получения дополнительной информации.)в этом процессе) для визуализации текста, преобразования их в HTML.Преобразование HTML может выбирать соответствующие теги (например, <H1>
и <p>
, но также <b>
и <i>
) на основе параметров используемых шрифтов (их имен и атрибутов) и инструкций (межбуквенный интервал, межстрочный интервал, size, face) в графических объектах.
Вы можете использовать библиотеку pdf-renderer для чтения и анализа PDF-файлов, а затем самостоятельно кодировать HTML-переводчик.Это непросто и не охватывает все случаи документов PDF.
При таком подходе вы потеряете первоначальный вид документа.Существует несколько библиотек для создания PDF-файлов, в которых не используются методы Adobe Font.Это также проблема с первым подходом, даже если вы можете видеть, что вы не можете выбрать его (но такое же поведение, как и в официальном Adobe Reader, таким образом, это не так уж и сложно).
Вывод:
Вы можете выбрать первый подход, второй подход или оба.
Я бы не пошел в направлении оптического распознавания символов (OCR), так как это действительно избыточно в такой проблеме, так каку этого также есть несколько недостатков.Этот подход использует Google.Если есть персонажи, которые не распознаются, обработка выполняется человеком.
Если вы занимаетесь обработкой человека;вы можете использовать только библиотеку Type Select и преобразование PDF в изображение и выполнить OCR самостоятельно, что, вероятно, является самым простым (человек как машина = разумно дешевым, смеется) способом решения проблемы.