Ответы:
Как ни странно, есть «законные» варианты использования для этого, особенно люди со слабым зрением. Acrobat и другие программы чтения могут переопределять цвета для отображения (например, Ctrl-I в Evince и через меню «Доступность» в Acrobat Reader X), но, как ни странно, не для печати. Однако вы можете использовать конвертер pdf2ps GhostScript (или поддельный драйвер принтера PS, который просто записывает файл), чтобы получить файл postscript, а затем отредактировать файл, вставив
{1 exch sub} settransfer
в качестве первой строки в файле, а затем распечатать этот файл PostScript. Таким образом, вы получите более точный рендеринг документа, чем если бы вы конвертировали PDF в изображение и инвертировали его.
pdf2ps
и ps2pdf
я могу экспортировать исходный PDF-файл в инвертированный PDF-файл. Мне просто любопытно, что делает предложенная линия и можно ли «вернуться» обратно к исходным цветам.
Существует простой и технический способ .
Технический способ заключается в том, что если у вас установлен Ghostscript и его .../bin
папка добавлена в вашу PATH, вы просто должны иметь возможность инвертировать цвета вашего PDF, вызывая что-то похожее на следующее из командной строки:
gswin64 -o C:/outputfile.pdf -sDEVICE=pdfwrite -c "{1 exch sub}{1 exch sub}{1 exch sub}{1 exch sub} setcolortransfer" -f C:/inputfile.pdf
Обратите внимание, что gswin64
(расположенный в .../bin
папке) может вызываться, gswin32
если вы загрузили 32-разрядную версию, или что-то еще, если вы используете систему * nix вместо Windows, и что вам, очевидно, следует заменить C:/outputfile.pdf
и C:/inputfile.pdf
фактическими путями вашего входной файл и предполагаемое расположение выходного файла. Также позаботьтесь о том, чтобы, по моему опыту, иногда возникали некоторые проблемы, если в ваших каталогах путей есть пробелы, даже если вы ставите кавычки вокруг них.
Также стоит отметить, что в некоторых версиях Ghostscript может произойти сбой, если вы не поместите {1 exch sub}{1 exch sub}{1 exch sub}{1 exch sub} setcolortransfer
строку в отдельный .ps
файл и не добавите этот .ps
файл в свою команду.
(Это действительно более конкретная версия Mateen Ulhaq
ответа выше)
Простой способ заключается в том, что если вы не можете быть обеспокоены выполнением любого из вышеперечисленного, вы можете использовать веб-сайт InvertPDF.com , который сделает все это (плюс немного больше) за вас. Это мой собственный сайт, и я наткнулся на эту тему, пока пытался ее создать. Я очень надеюсь, что этот ответ облегчит задачу следующему человеку, пытающемуся достичь аналогичного результата или создающему свой автономный сценарий.
Согласно этой странице , вы можете сделать это с помощью ImageMagick. Тем не менее, PDF будет преобразован в изображения, прежде чем он будет инвертирован. Если качество не достаточно из-за этого, вы сможете настроить число точек на дюйм.
convert -density 300 -negate "input.pdf[1-999]" output.pdf
Замените 300
на нужный вам DPI и 1-999
желаемый диапазон страниц.
ПРИМЕЧАНИЕ . Эта команда предназначена для более старой версии ImageMagick, и вам необходимо убедиться, что установлены устаревшие утилиты.
В Acrobat Reader X
Правка-> Настройки-> Специальные возможности Выберите: Заменить цвета документа. Выберите: Пользовательский цвет.
Установите оставшиеся параметры в соответствии с личными предпочтениями.
Примечание: это не меняет документ, только ваш вид и способ его печати.
Ни одно из ранее опубликованных решений не помогло мне, поэтому я написал этот простой сценарий bash. Это зависит от pdftk
и awk
. Просто скопируйте код в файл и сделайте его исполняемым. Затем запустите это как:
$ /path/to/this_script.sh /path/to/mypdf.pdf
Сценарий:
#!/bin/bash
pdftk "$1" output - uncompress | \
awk '
/^1 1 1 / {
sub(/1 1 1 /,"0 0 0 ",$0);
print;
next;
}
/^0 0 0 / {
sub(/0 0 0 /,"1 1 1 ",$0);
print;
next;
}
{ print }' | \
pdftk - output "${1/%.pdf/_inverted.pdf}" compress
Этот скрипт работает для меня, но ваш пробег может отличаться. В частности, иногда цвета указаны в форме 1.000 1.000 1.000
вместо 1 1 1
. Сценарий может быть легко изменен по мере необходимости. При желании могут быть добавлены дополнительные цветовые преобразования.
Если вам нужна более приятная шкала серого и вы можете преобразовать документ в изображения, добавьте его в файл .bat, а затем просто перетащите файл PDF в файл .bat.
"C:\Program Files\gs\gs9.20\bin\gswin64c" -o inverted.pdf -sDEVICE=pdfwrite -c "{1 exch sub}{1 exch sub}{1 exch sub}{1 exch sub} setcolortransfer" -f %1
convert -brightness-contrast 3,-18 -compress lzw -density 300 -colorspace Gray inverted.pdf output.pdf
Требуется установить Ghostscript для первой команды (пожалуйста, укажите правильный путь). Требуется, чтобы ImageMagick с устаревшими утилитами был установлен для второй команды.
Многие предлагали использовать метод Edit-> Preference-> Accessibility, но, к сожалению, он не работал для меня. После тестирования и изучения настроек PDF мне удалось получить то, что я хотел!
Это должно сработать!
Важная заметка!
Я бы предложил распечатать этот файл в формате PDF, чем напрямую. Особенно, если вы собираетесь печатать несколько страниц на одной странице, так как это также приведет к черным пробелам!
Наконец, если вы собираетесь распечатать документ в виде другого PDF-файла, в разделе « Размер страницы и обработка» нажмите « Подогнать» и установите оба флажка - « Выберите размер бумаги при необходимости » и « Используйте нестандартный формат бумаги при необходимости» . (Чтобы избежать нежелательных пробелов)
Надеюсь, это поможет!