Как изменить цвет всех основных моментов в файле PDF?

Я хочу изменить цвет каждой подсветки в PDF-файле (не делая этого для каждого выделения вручную). Предпочтительно с командой командной строки.

Вот пример PDF с выделенной линией.

2 Solutions collect form web for “Как изменить цвет всех основных моментов в файле PDF?”

Я написал сценарий Python для выполнения задачи. Он ищет все объекты в файле PDF (помеченные obj и endobj ) и проверяет каждый объект, если он является аннотацией ( /Type/Annot ) типа выделения ( /Subtype/Highlight ). Если это так, то определение цвета ( /C[...] ) будет заменено.

Существуют некоторые ограничения:

  • Настоящий синтаксический разбор PDF не выполняется. Используемые регулярные выражения могут не подходить для некоторых файлов PDF.
  • Это может не работать для зашифрованных или сжатых PDF-файлов. (Я не уверен, что аннотации могут быть сжаты.)
  • Исходный файл будет перезаписан. Не обвиняйте меня в потерянных данных! (Сценарий легко редактируется для создания новых файлов.)
  • Я предполагаю, что некоторые объекты PDF ссылаются на другие объекты по их положению в файле. Таким образом, я не могу изменить размер файла. Это означает, что новое определение цвета может не занимать больше байтов, чем старый.
  • Определение цвета не проверено. Вы можете разорвать PDF-файл с недопустимым выражением.

Вот моя попытка регулярного выражения. Замена происходит на месте, поэтому перед тем, как начать, сделайте копию своего документа.

Этот вариант работает, когда присутствует массив цветов:

 $ perl -pi -e 's/(\/Type.*\/Annot.*\/Subtype.*\/Highlight.*\/C\s*\[)[^]]*]/${1}0.5 0.5 0.5]/' document.pdf 

Это тот, когда цветной массив не указан (по умолчанию он черный):

 $ perl -pi -e 's/(?=\/Type.*\/Annot.*\/Subtype.*\/Highlight)(?!\C\s*\[)(.*)Highlight/$1Highlight\/C[0.5 0.5 0.5]/' document.pdf 

Если первая команда не работает, попробуйте другую. Если вторая работала, то для последующих изменений цвета используйте первую.

Замените 0.5 0.5 0.5 вашим любимым цветом, например

  • 0 0 1 для синего (0/255 0/255 255/255),
  • 1 1 0 для желтого (255/255 255/255 0/255) или
  • 1 0.8745098039 0.3607843137 для вида оранжевого (255/255 253/255 92/255).
  • Открыть размер и положение ширины предварительного просмотра PDF-файла и «всегда сверху» из командной строки
  • concat pdf страницы после pdfcrop
  • Как вырезать действительно большое растровое изображение на более мелкие куски?
  • Изменение файлов PDF
  • Преобразуйте ps в pdf с помощью ps2pdf, но файл pdf не очень хорош
  • Скомпилировать pdf-файл с нескольких изображений, отсканированных с помощью scanimage --batch
  • Сценарий оболочки для объединения файлов с одинаковыми именами
  • Как конвертировать PDF в формат eBook
  • Как напечатать половину страницы в pdf-файле?
  • Печать двух PDF на одном листе без масштабирования
  • Удаление определенных страниц PDF в зависимости от содержимого
  • Interesting Posts

    UNIX: отправить задание только после завершения предыдущего задания?

    Двойные сочетания клавиш в Gnome

    Как я могу запретить кому-то получать root-доступ через загрузчик?

    Как я могу сделать доступную для чтения систему Linux (которая использует unionfs) для чтения / записи на время обновления?

    Есть ли легенда в каком-то месте, которое описывает все эти цветовые кодировки в нижней части byobu?

    / etc / crontab отредактировано путем копирования и вставки, как вернуться назад?

    как дублировать значения каждой строки под каждым в течение n раз?

    Почему не работает dzen2 при вызове через?

    Удаление текста из активных программ в панели

    как запускать несколько версий одной оболочки на одной машине

    Logrotate: сообщение в файле конфигурации журнала для вращения

    Конфигурация Linux nat / iptables для цепочки одноранговых ссылок

    Разница в пространстве, зарезервированная для inodes в разделах ext4 и XFS

    В чем смысл if ;?

    Подключение к локальной сети WPA2 на Ubuntu с помощью Fluxbox

    Linux и Unix - лучшая ОС в мире.