Невозможно сделать это напрямую, без каких-либо (свободных программ или бесплатных) инструментов, о которых я знаю. (Поскольку в общем случае вам придется изменить все цвета страниц PDF, а не только фон, поэтому у вас все еще могут быть некоторые различия в контрасте и цвете.) эм>
То, что вы описываете для Adobe Reader, не меняет сам PDF-файл, оно меняет способ отображения страниц приложением (путем инвертирования цветов или чего-то подобного). PDF-файл остается неизменным во время и после просмотра.
Однако вы можете добиться того же, применив подходящий цветовой профиль ICC к входному PDF-файлу и создав с помощью (самой последней версии) Ghostscript новый выходной PDF-файл из это.
Остается вопрос: какой ЯВЛЯЕТСЯ "подходящим" цветовым профилем ICC для ваших целей??
Некоторое время назад я решил применить сероватый фон к PDF с помощью командной строки pdftk ... background ...
. Но это, вероятно, сделает некоторые или многие PDF-файлы нечитаемыми. (черный фон наверняка сделает текст нечитаемым, потому что большая часть текста черная и останется такой.)
Чтобы создать страницу PDF (размер A4), которая может служить серым фоном, вы можете использовать Ghostscript: gs -o gray.pdf -sDEVICE=pdfwrite -g5950x8420 -c ".8 setgray 0 0 595 842 rectfill showpage"
.
Затем примените его к исходному файлу PDF (A4): pdftk original.pdf background gray.pdf output orig-with-backgr.pdf
.
Обратите внимание, что это изменит фон только тех страниц (или тех областей страниц), где исходный фон прозрачен, как и большинство текстовых PDF-файлов. Он не работает для страниц или областей с непрозрачным белым или цветным фоном.)
Вы также можете довольно легко добиться постоянного изменения цвета (инвертировать цвета) с помощью ImageMagick. Но это в то же время съест и превратит ваши красивые векторные PDF-файлы в фарш, превратив их в страницы с полными растровыми изображениями: convert nice.pdf -alpha off -invert inverted-colors-ugly-raster.pdf
.
Наконец, вот довольно ненадежный способ инвертирования цветов с помощью Ghostscript. Он устанавливает функцию colortransfer для выходного PDF-файла:
gs -o output.pdf \
-sDEVICE=pdfwrite \
-c "{1 exch sub}{1 exch sub}{1 exch sub}{1 exch sub} setcolortransfer" \
-f input.pdf
Это ненадежно, потому что не каждая программа для просмотра PDF будет соблюдать этот параметр. Я проверял это несколько раз в прошлом...
Эти зрители ПОКАЗАЛИ инвертированные цвета:
- Adobe Reader
- Adobe Acrobat
- gv
- Ghostscript/gs
- Собственный модуль визуализации PDF в Chrome ('pdfium')
Эти НЕ ПОКАЗЫВАЮТ инвертированные цвета:
- Chrome с PDF.js
- Firefox с PDF.js
- Затура
- MuPDF
person
Kurt Pfeifle
schedule
29.04.2015