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

Для любого, кто мог бы наткнуться на эту проблему: Я зафиксировал его в своем маршрутизаторе.

Мой компьютер подключен к моему маршрутизатору, который подключен к моему модему, который переходит в конечном счете к моему поставщику.

В resolv.conf Я нашел адрес своего маршрутизатора как первый сервер имен и затем адрес моего модема. Так как мой маршрутизатор не имел никаких таблиц сервера имен, которые он не даст полезному ответу, но потребовалось некоторое время, прежде чем он дал ответ вообще, таким образом, каждый раз я сделал запрос твердости, он попробовал мой маршрутизатор сначала, который занял много времени, затем он перейдет к моему модему.

Таким образом, мне был нужен некоторый способ иметь мой модемный адрес как первый сервер имен в resolv.conf. Теперь я просто использовал DHCP в Debian, таким образом, я полагал, что мой маршрутизатор должен дать мне этот неправильный сервер имен. Таким образом, я изучил свою конфигурацию маршрутизатора и нашел, что мог указать статические серверы DNS (у меня есть маршрутизатор Linksys). Я установил адрес своего модема там и теперь после каждой перезагрузки, в которой Debian имеет мой модемный адрес как первый сервер имен resolv.conf!

Надежда, которая помогает любому.

5
06.03.2014, 18:54
3 ответа
Я написал [11741]Python-скрипт[11742] для выполнения этой задачи. Он ищет все объекты в PDF файле (помеченные [11743]obj[11744] и [11745]endobj[11746]) и проверяет каждый объект, если это аннотация ([11747]/Type/Annot[11748]) типа highlight ([11749]/Subtype/Highlight[11750]). В этом случае определение цвета ([11751]/C[...][11752]) будет заменено.[12151]Есть некоторые ограничения:[12152]Реальный разбор PDF не производится. Регулярные выражения, используемые может быть не подходит для некоторых PDF-файлов.[12153]Это может не работать для зашифрованных или сжатых PDF-файлов. (Я не уверен, что аннотации могут быть сжаты.)[12154]Оригинальный файл будет перезаписан.[11898] Не обвиняйте меня в потере данных! (Сценарий легко редактируется для создания новых файлов.)[12155]Я предполагаю, что некоторые объекты PDF ссылаются на другие объекты по их положению в файле. Таким образом, я не допускаю изменения размера файла. Это означает, что новое определение цвета может не занимать больше байт, чем старое.[12156]Определение цвета не проверяется. Вы можете разбить PDF неправильным выражением.[12157]
4
27.01.2020, 20:40

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

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

$ 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).
0
27.01.2020, 20:40

Решение @jgosmamn немного устарело. :Похоже, что оно использует Python 2, что приводит к ошибкам, связанным с байтовыми -строковыми операциями по сравнению с декодированными -строковыми операциями. Я решил опубликовать дружественную к Python 3 -версию на gist .

В эту версию также внесены следующие изменения:

  • Исправлена ​​ошибка, из-за которой выделенные аннотации, занимающие более одной строки в файле, игнорировались.
  • По умолчанию создает новые файлы. Это позволяет вам проверить результат перед перезаписью.
  • Строка цвета теперь жестко запрограммирована (больше не является командой -строковый аргумент ). Предполагается, что вы будете использовать этот сценарий для нормализации цвета подсветки до некоторого предпочтительного значения, поэтому вам не нужно будет менять его слишком часто. Это имеет дополнительное преимущество, заключающееся в снижении риска повреждения файла из-за опечаток в строке команды -.

Обратите внимание, что ни одно из этих решений не гарантирует получение каждой отдельной подсветки. У меня есть некоторые засветы в старых документах, явно не окрашенные инструкцией \C.

1
13.10.2020, 19:46

Теги

Похожие вопросы