У меня есть существующий PDF с полностью черным фоном, и весь текст белый.
Есть ли способ заставить текст печатать черным, а черный фон вообще не печатать?
У меня есть Bluebeam и Adobe PDF.
Как ни странно, есть "законные" варианты использования для этого, особенно люди со слабым зрением. Acrobat и другие программы чтения могут переопределять цвета для отображения (например, Ctrl-I в Evince и через меню "Доступность" в Acrobat Reader X), но, как ни странно, не для печати. Что вы можете сделать, однако, это использовать конвертер phost2ps GhostScript (или поддельный драйвер принтера PS, который просто записывает файл), чтобы получить файл postscript, а затем отредактировать файл, поместив
{1 exch sub} settransfer
в качестве первой строки в файле, а затем распечатать этот файл PostScript. Таким образом, вы получите более точный рендеринг документа, чем если бы вы конвертировали PDF в изображение и инвертировали его.
В Acrobat Reader X
Правка-> Настройки-> Специальные возможности Выберите: Заменить цвета документа. Выберите: Пользовательский цвет.
Установите остальные параметры в соответствии с личными предпочтениями.
Примечание: это не меняет документ, только ваш вид и способ его печати.
Существует простой и технический способ.
Технический способ заключается в том, что если у вас установлен Ghostscript и в папку PATH добавлена его папка .../bin
, вы должны просто иметь возможность инвертировать цвета вашего 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, и вам необходимо убедиться, что установлены устаревшие утилиты.
Ни одно из ранее опубликованных решений не помогло мне, поэтому я написал этот простой сценарий 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 с устаревшими утилитами для второй команды.
Использование ImageMagick работало для меня, хотя выходной файл примерно в 50 раз больше входного.
convert -density 300 -negate input_file.pdf output_file.pdf
Многие предлагали использовать метод Edit-> Preference-> Accessibility, но, к сожалению, он не работал для меня. После тестирования и изучения настроек PDF мне удалось получить то, что я хотел!
Это должно сработать!
Важная заметка!
Я бы предложил распечатать этот файл в формате PDF, чем напрямую. Особенно, если вы собираетесь печатать несколько страниц на одной странице, так как это также приведет к черным пробелам!
Наконец, если вы собираетесь распечатать документ в виде другого PDF-файла, в разделе « Размер страницы и обработка» нажмите « Подогнать» и установите оба флажка - « Выберите размер бумаги при необходимости » и « Используйте нестандартный формат бумаги при необходимости». (Чтобы избежать нежелательных пробелов)
Надеюсь, это поможет!