1

Я скачал несколько файлов из интернет-архива. Они приходят в разных форматах файлов, и большую часть времени я использую PDF. Однако иногда сканы сохраняются в цвете, а не в черно-белом. Это затрудняет (или делает невозможным) чтение на специальном устройстве для чтения электронных книг. В этом случае я скачал файлы DjVu, так как на ПК вы можете выбрать, какой слой (цвет, чёрный, передний план, фон) вы хотели бы видеть.

Выбор черно-белого дает отличные результаты. Тем не менее, электронная книга не имеет этой опции.

Вопрос в том, как удалить или извлечь слой из файла DjVu и сохранить только этот слой?

До сих пор я пробовал следующие два подхода:

  1. Выберите черно-белое в программе просмотра DjVu на ПК и распечатайте в файл PostScript. Затем следует преобразование ps2pdf . Это работает, но генерирует довольно большой файл PDF. Конечно, я могу снова загрузить его в any2DjVu, но для каждого файла это просто большая ручная работа.

  2. Я попробовал функцию общей аннотации и сказал "mode bw". Это работает на ПК по желанию, но игнорируется на устройстве для чтения электронных книг, так как другие слои все еще присутствуют.

3 ответа3

1
  1. Распакуйте файл djvu: djvuextract g.djvu BG44=g.c44 ; djvuextract t.djvu Sjbz=t.cjb2
  2. Объедините его снова: djvumake q.djvu INFO=1662,1840 BGbz=\#white Sjbz=t.cjb2 FGbz=\#black

(команды являются специальными, я не проверял их)

0

Есть метод, который не предполагает раздувания файла. Я возьму один файл подкачки для простоты. Возможно, метод можно адаптировать и для нескольких страниц. Сначала перечислите куски в вашем файле, используя djvudump . Типичный вывод будет выглядеть так:

FORM:DJVU [72422] 
  INFO [10]         DjVu 2443x3471, v24, 300 dpi, gamma=2.2
  Sjbz [47781]      JB2 bilevel data
  FG44 [3393]       IW4 data #1, 100 slices, v1.2 (color), 408x579
  BG44 [2611]       IW4 data #1, 74 slices, v1.2 (color), 815x1157
  BG44 [3307]       IW4 data #2, 10 slices
  BG44 [1208]       IW4 data #3, 6 slices
  BG44 [8543]       IW4 data #4, 7 slices

Затем вы можете извлечь фрагменты без фона.

djvuextract input.djvu Sjbz=tmp1
djvuextract input.djvu FG44=tmp2

Когда вы создаете новый файл без фона, по умолчанию он становится белым. Числа, передаваемые в INFO представляют собой размеры и DPI из вывода djvudump .

djvumake output.djvu INFO=2443,3471,300 Sjbz=tmp1 FG44=tmp2

Некоторые сценарии, вероятно, необходимы, чтобы сделать это полезным на практике.

0

Программа, которую вы хотите, это djvups. Как и предполагает его название, он будет конвертировать из DjVu в PostScript с бонусом, позволяющим вам выбрать, какие слои сохранить (все, передний план, фон или маску переднего плана). Попробуй это:

djvups -mode=foreground -gray input.djvu output.ps

или просто вывести маску переднего плана:

djvups -mode=black input.djvu output.ps

После этого преобразования ps2pdf должен получить то, что вы хотите.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .