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

1048
user2547450

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

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

5

2 ответа на вопрос

5
Ben N

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 8 лет назад 1
Извините за поздний ответ ... Я загружаю исходный код okular, комментирую if ifment и его содержимое, а затем собираю okular, следуя руководству kde, но это не работает. У меня все еще есть цвет границы, когда я добавляю Inline Note ... user2547450 8 лет назад 0
@ user2547450 Извините за задержку с ответом, хе. Вы * уверены *, что используете версию, которую вы создали, а не стандартную версию, поставляемую с вашей системой? Если вы измените `Qt :: black` на другой из предопределенных цветов, что-нибудь произойдет? Ben N 8 лет назад 0
Да, я уверен. Я установил okular 0.20.2, и я собрал 0.24.60. Я использовал borderWidth = 0, но не работает, и я также использовал Qt :: white и все еще показываю черную рамку. user2547450 8 лет назад 0
@ user2547450 Влияет ли изменение на появление других аннотаций? Что произойдет, если вы вставите `continue;` перед строкой 694? Встроенные заметки не должны отображаться вообще. Ben N 8 лет назад 0
Теперь, когда вы упоминаете. Прямая линия не имеет цвета. Похоже, что это стиль, который изменяет. user2547450 8 лет назад 0
@ user2547450 У меня нет дистрибутива Linux для тестирования, но я не могу представить, как эта часть кода модифицирует геометрические аннотации. Не могли бы вы проверить, что есть комментарий `// draw TextAnnotation` на несколько строк вверх? Ben N 8 лет назад 0
Да, я нашел // нарисовать комментарий TextAnnotation. Я изменяю const double borderWidth = text-> style (). Width (); по const double borderWidth = 0 ;. Но продолжайте показывать цвет границы. Я забываю спросить, знаете ли вы кого-нибудь из команды разработчиков KDE? user2547450 8 лет назад 0
@ user2547450 Боюсь, я не знаю никого в команде разработчиков, но, возможно, я скоро настрою тестовую среду. Обратите внимание, что установка значения borderWidth равным нулю приводит к тому, что Qt требует 1, поэтому вам следует просто полностью удалить эту инструкцию рисования. Ben N 8 лет назад 0
1
harrymc

Есть две проблемы с аннотациями встроенных заметок в 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.

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