Перейти к содержимому

Изменить цвет границы аннотаций Okular

5

Встроенные заметки в Okular (средство чтения PDF по умолчанию для рабочего стола KDE) позволяют мне изменять цвет подсветки по умолчанию, но я также хочу изменить цвет границы этих заметок.

Как я могу изменить цвет границы аннотаций Okular или просто удалить границу?

1 209 просмотров
user2547450 спросил 10 лет назад
U 143

2 ответа

5

The border color is hardcoded as Qt::black. Therefore, if you want to change the color, you'll need to get the source, modify it, and recompile Okular. Look in pagepainter.cpp starting on line 711 (comment mine):

if ( borderWidth != 0 ) { QPen pen( Qt::black, borderWidth ); // The first argument is the important part painter.setPen( pen ); painter.drawRect( 0, 0, image.width() - 1, image.height() - 1 ); } 

If you want to remove the border, you can just delete the above if statement and its contents. If you want a different color, you can replace Qt::black with another one of the twenty predefined colors. To get any color, replace that constant with a call to QColor::fromRgb. For example, QColor::fromRgb(239, 228, 176, 255) is a kind of dingy yellow.

Recompiling applications is a little out of scope here, and a full explanation would be a tome. Here are some reference documents from KDE TechBase, though they may be a little out of date:

I wish there was another way, and I would welcome a simpler answer.

Спасибо, выглядит очень полезно! Я попытался собрать инструкции для компиляции сборки Okular, которая работает с подобным вопросом, требующим настройки Okular (не стесняйтесь обновлять!): Http://superuser.com/questions/673917/modify-okular-highlight-to-automatics -copy-selected-text-to-comment. У разработчиков Okular есть довольно подробные рекомендации, которые могут обеспечить относительно быстрый путь: https://okular.kde.org/download.php. Пошаговая компиляция может быть трудной задачей и для новичков. Подумайте о том, чтобы опубликовать код как ветку git в Okular для большей доступности.

puslet88 · 10 лет назад · 1

Извините за поздний ответ ... Я загружаю исходный код okular, комментирую if ifment и его содержимое, а затем собираю okular, следуя руководству kde, но это не работает. У меня все еще есть цвет границы, когда я добавляю Inline Note ...

user2547450 · 10 лет назад · 0

@ user2547450 Извините за задержку с ответом, хе. Вы * уверены *, что используете версию, которую вы создали, а не стандартную версию, поставляемую с вашей системой? Если вы измените Qt :: black на другой из предопределенных цветов, что-нибудь произойдет?

Ben N · 10 лет назад · 0

Да, я уверен. Я установил okular 0.20.2, и я собрал 0.24.60. Я использовал borderWidth = 0, но не работает, и я также использовал Qt :: white и все еще показываю черную рамку.

user2547450 · 10 лет назад · 0

@ user2547450 Влияет ли изменение на появление других аннотаций? Что произойдет, если вы вставите continue; перед строкой 694? Встроенные заметки не должны отображаться вообще.

Ben N · 10 лет назад · 0

Теперь, когда вы упоминаете. Прямая линия не имеет цвета. Похоже, что это стиль, который изменяет.

user2547450 · 10 лет назад · 0

@ user2547450 У меня нет дистрибутива Linux для тестирования, но я не могу представить, как эта часть кода модифицирует геометрические аннотации. Не могли бы вы проверить, что есть комментарий // draw TextAnnotation на несколько строк вверх?

Ben N · 10 лет назад · 0

Да, я нашел // нарисовать комментарий TextAnnotation. Я изменяю const double borderWidth = text-> style (). Width (); по const double borderWidth = 0 ;. Но продолжайте показывать цвет границы. Я забываю спросить, знаете ли вы кого-нибудь из команды разработчиков KDE?

user2547450 · 10 лет назад · 0

@ user2547450 Боюсь, я не знаю никого в команде разработчиков, но, возможно, я скоро настрою тестовую среду. Обратите внимание, что установка значения borderWidth равным нулю приводит к тому, что Qt требует 1, поэтому вам следует просто полностью удалить эту инструкцию рисования.

Ben N · 10 лет назад · 0
Ben N ответил 10 лет назад
B 28 901
1

Есть две проблемы с аннотациями встроенных заметок в Okular:

  1. Аннотации не сохраняются в PDF, а пишутся отдельно, что делает их неудобным для общения и непригодным для использования любым другим читателем.
  2. Как отмечает @BenN, пограничные цвета зашиты черным.

Одним из решений может быть использование другого редактора PDF, который является более настраиваемым. К сожалению, я не могу найти такой редактор в Linux, поэтому нужно использовать редактор Windows, что полностью возможно в Linux, если использовать Wine, который добавляет собственный слой Windows-on-Linux (с логотипом «Wine Is Not the Emulator»). «).

Рекомендуемый редактор - PDF-XChange Viewer . Можно использовать переносную версию, но, как говорят, установщик также работает под Wine. PDF-XChange Viewer является сообщается в полнофункциональной под Wine.

PDF-XChange Viewer имеет несколько разновидностей аннотаций, называемых комментариями и разметкой, которые можно настраивать для границ и цветов фона: заметка, пишущая машинка, текстовое поле, выноска; и включает в себя также возможность выделять текст, вычеркивать текст и подчеркивать текст. Все они полностью настраиваемы, и файл PDF обновляется, чтобы содержать их для просмотра любым другим средством просмотра PDF.

harrymc ответил 10 лет назад
H 249 057