Инвертировать цвета во всем PDF (преобразование)

9

Как создать PDF с инвертированными цветами оригинала?

(Так же, как инвертировать весь экран с xcalib -i -a)

Желательно: не терять гиперссылки. Но это не требование. Было бы хорошо, если бы изображения также были инвертированы.

Гжегож Вежовецкий
источник
Может быть, ImageMagick является отправной точкой - я только что попробовал, convert orig.pdf -negate negative.pdfно результат не так хорош .... может быть, есть предостережения, о которых я не знаю.
sr_

Ответы:

7

Некоторое время назад мне удалось найти способ инвертировать файлы postscript (хотя для некоторых файлов это не помогло, я думаю, те, которые каким-то образом отменяют изменения).

Добавление {1 exch sub} settransferв качестве первой команды в файле приведет к инвертированию цветов документа (включая растровые изображения).

Для преобразования PDF → postscript вы можете использовать pdftopsиз libpoppler(AFAIK, ghostscript pdf2psгенерирует субоптимальные результаты). К сожалению, это не будет сохранено при создании PDF-файла из отрицательного файла postscript.

Обратите внимание, что некоторые средства просмотра PDF имеют возможность инвертировать цвета, такие как xpdf(который не инвертирует растровые изображения) и evince(который инвертирует все, очевидно, независимо от формата (PDF, postscript, djvu, ...)

njsg
источник
3
Инвертируйте цвет в evince , View -> Inverted ColorsИЛИ Ctrl-iесли вы предпочитаете сочетание клавиш.
Лорем Ипсум Долор
Для xpdf, используйте, xpdf -rv <filename>чтобы открыть документ в режиме обратного видео. Еще немного информации со страницы руководства: «Это меняет цвета всего, кроме изображений. Это может не всегда давать отличные результаты для файлов PDF, которые делают странные вещи с цветом. Это также приводит к тому, что цвет бумаги по умолчанию становится черным».
ВВП2
0

Я собрал вместе скрипт на Ruby (используя Inkscape и ImageMagick в качестве подпрограмм) pdfinvert . Это происходит следующим образом:

  1. Разделить PDF на отдельные страницы.
  2. Конвертировать каждую страницу в SVG.
  3. Инвертировать цвета¹ в SVG; встроенные изображения PNG позаботятся о².
  4. Переконвертировать каждую страницу в PNG.
  5. Соедините страницы вместе для окончательного результата.

Он был разработан для рисунков, но может работать во многих других случаях (кажется, что для работы с неокрашенными фонами нужны некоторые расширения).


  1. Вы также можете указать таблицу замены цвета.
  2. Подход, вероятно, распространяется на JPG или любой другой формат, с которым convertможет работать ImageMagick .
Рафаэль
источник