Я предполагаю, что вы можете без проблем скопировать и вставить текстовые фрагменты, когда ваш PDF открыт в Acrobat Reader или каком-либо другом PDF Viewer?
Перед попыткой синтаксического анализа и извлечения текста из таких файлов монстров программнымесли это только 200 МБайт - для простого текста в таблицах, который будет огромным, если у вас нет 200000 страниц ...), я бы поступил так:
- Попробуйте сначала очистить файл, переустанавливаяit.
- Попробуйте с помощью различных инструментов CLI извлечь текст в файл .txt.
Это вопрос минут.Написание Ruby-программы для этого, безусловно, занимает считанные часы, дни или недели (в зависимости от ваших знаний о внутреннем устройстве форматирования файлов PDF ... Я подозреваю, что у вас пока нет такого опыта).
Если "2"работает, вы можете уже на полпути.Если это работает, вы также знаете, что делать это программно с Ruby - это работа, которую в принципе можно решить.Если "2"не работает, вы знаете, что это может быть чрезвычайно трудно достичь программным путем.
Очистить 'Monster.pdf':
Я предлагаю использовать Ghostscript .Вы также можете использовать Adobe Acrobat Distiller, если у вас есть к нему доступ.
gswin32c.exe ^
-o Monster-PDF-sanitized ^
-sDEVICE=pdfwrite ^
-f Monster.pdf
(мне интересно, насколько эта единственная команда уменьшит выходной PDF-файл по сравнению с вводом.)
Извлечение текста из PDF:
Я советую сначала попробовать pdftotext.exe
( от ребят из XPDF ).Есть и другие, немного более неудобные методы, доступные также, но это может уже сделать работу:
pdftotext.exe ^
-f 1 ^
-l 10 ^
-layout ^
-eol dos ^
-enc Latin1 ^
-nopgbrk ^
Monster-PDF-sanitized.pdf ^
first-10-pages-from-Monster-PDF-sanitized.txt
Это не будет извлекать все страницы, но только 1-10 (для подтверждения концепции, чтобы увидеть, если этоработает на всех).Чтобы извлечь из каждой страницы, просто пропустите параметр -f 1 -l 10
.Возможно, вам придется настроить кодировку, изменив параметр на -enc ASCII7
(или UTF-8
, UCS-2
).
Если это не сработает быстрым и простым способом (потому что, как иногдабывает, что какой-то шрифт в оригинальном PDF-файле использует «пользовательский вектор кодировки»), вам следует задать новый вопрос, описывая детали ваших результатов.Тогда вам нужно прибегнуть к большим калибрам, чтобы решить проблему.