Моя ОС - Ubuntu 12.04. Как я могу преобразовать PDF-файл из серого в черно-белый? PDF-файл в градациях серого получается при сканировании с серой шкалой, а OCR требует черно-белой шкалы pdf.
Обновить:
После ответа Марко, PDF-файл BW не очень хорош, и оригинальный файл здесь .
command-line
pdf
Тим
источник
источник
scantailor
scantailor
имеет множество других полезных функций, когда дело доходит до подготовки сканов для OCR, и это единственная причина, по которой я предложил это (как комментарий, а не ответ)pdfimages
(poppler), чтобы извлечь отсканированные изображения из его контейнера PDF. Может быть более эффективно справиться с ними с помощью ImageMagick.Ответы:
1) Используйте ghostscript для преобразования PDF в монохромный файл PostScript с помощью устройства psmono :
2) Затем преобразуйте монохромный PostScript обратно в PDF:
EDIT:
psmono
устройство создает 1-разрядное полутоновое изображение , которое , по- видимому , не то , что вы хотите. Я не смог найти способ указать пороговое значение с помощью ghostscript, поэтому я прибегнул к imagemagick.convert
внутренне использует ghostscript для преобразования PDF. Затем он применяет фильтрацию пороговых значений для получения 1-битного изображения и снова использует ghostscript для создания PDF. Посколькуconvert
по умолчанию используется разрешение 75 точек на дюйм, которое может не совпадать с фактическим разрешением, вы можете указатьdensity
аргумент. И поэкспериментируйте сthreshold
настройками. Оптимальные значения сильно зависят от входного файла.источник
Лучший способ, который я обнаружил там, без потери качества, удаляет тени, шумы, текст со следующей страницы, просвечивающей и т.д .:
1) Сначала конвертировать PDF в отдельные изображения
2) Во-вторых, удалите тени, шум, текст со следующей страницы, через которую пролистываете (ссылки на этот блог )
это может быть добавлено как дополнительный шаг или вместо команды выше, чтобы фактически получить только два цвета:
3) Это сделать PDF-файл из каждого изображения JPG без потери разрешения или качества:
4) Это для объединения pdf-страниц в одну:
5) И наконец, я добавляю текстовый слой OCRed, который не меняет качество сканирования в PDF-файлах, чтобы их можно было искать:
источник
У меня также были некоторые отсканированные цветные PDF-файлы и PDF-файлы в градациях серого, которые я хотел преобразовать в BW. Я попытался использовать
gs
с кодом, перечисленным здесь , и качество изображения хорошее с текстом PDF все еще там. Однако этот код GS конвертируется только в оттенки серого (как задано в вопросе) и по-прежнему имеет большой размер файла.convert
дает очень плохие результаты при непосредственном использовании.Я хотел получить PDF-файлы с хорошим качеством изображения и небольшим размером файла. Мое решение использует
gs
для извлечения bmp-файлов в градациях серого из pdf,convert
пороговых значений bmp для bw и сохранения их в виде tiff-файлов, а затем img2pdf для сжатия tiff-изображений и объединения их всех в один pdf.Я попытался перейти непосредственно к PDF из TIFF, но качество не то же самое, поэтому я сохраняю каждую страницу в BMP. Для одностраничного PDF-файла
convert
отлично справляется с bmp в pdf. Пример:Для нескольких страниц,
gs
можно объединить несколько файлов PDF в один, ноimg2pdf
дает меньший размер файла, чем GS. Файлы TIFF должны быть распакованы как входные данные для img2pdf. Имейте в виду, что для большого количества страниц промежуточные файлы bmp и tiff обычно имеют большой размер.pdftk
илиjoinpdf
было бы лучше, если бы они могли объединять сжатые файлы PDF изconvert
.Я думаю, что есть более элегантное решение. Однако мой метод дает результаты с очень хорошим качеством изображения и гораздо меньшим размером файла. Чтобы вернуть текст обратно в bw pdf, снова запустите OCR.
Мой сценарий оболочки использует gs, convert и img2pdf. При необходимости измените параметры (количество страниц, dpi сканирования, пороговое значение% и т. Д.), Указанные в начале, и запустите
chmod +x ./pdf2bw.sh
. Вот полный скрипт (pdf2bw.sh):источник
На самом деле, если это происходит от сканирования, единственный разумный способ - это использовать pdfimages и конвертировать основную графику. Я использовал этот скрипт, чтобы преобразовать его:
источник
Спасибо OccamsRazor за его сценарий, который отлично справляется с преобразованием цветных и полутоновых PDF-файлов в компактную и разборчивую монохромную версию. Это действительно комментарий к посту OccamsRazor, но у меня недостаточно очков, чтобы комментировать.
Сценарий не будет работать, так
img2pdf -o ./$output_pdf_name --dpi $dpi_res $input_files
как--dpi
он больше не является допустимым аргументом для img2pdf. Вместо этого он получает разрешение из входного файла, так что вы можете просто пропустить его.Вот моя версия сценария. Я не хотел редактировать скрипт для каждого файла, поэтому я передаю количество страниц и имя входного файла при запуске. У меня установлено выходное имя и разрешение 200 dpi, что подходит для моего рабочего процесса, но вы можете изменить его или превратить в и и передать их.
00input_name
$3
$4
Для запуска, использование , например, .
./pdf2bw.sh <number_of_pages> <input_name>
./pdf2bw.sh 55 input.pdf
источник
"./$input_pdf_name"
и дажеseq 1 "$num_pages"
. Кроме того , вы можете изменить ,`…`
чтобы$(…)
- увидеть это , это и это .