evince обработчик ссылок для pdf – открыть ссылку на именованное назначение

Вопрос или проблема

Evince – это мой стандартный просмотрщик PDF. Если я нажимаю на ссылку file:///home/patrick/A.pdf, то открывается Evince и отображается A.pdf.

У меня есть PDF-файл с именованными местами назначения. Я хотел бы, чтобы при нажатии на file:///home/patrick/A.pdf#B меня переводило к именованному месту назначения B в файле A. Как я могу включить эту функциональность?

evince --named-dest=B A.pdf работает очень хорошо, но я хочу, чтобы это происходило автоматически при нажатии на ссылку.

Ответ или решение

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

1. Основы работы Evince

Evince — это популярный PDF-ридер, который, помимо прочего, поддерживает возможность открытия документов с использованием именованных целей. Это означает, что вы можете указать определенные разделы документа, на которые должно происходить обращение.

2. Понимание структуры URL

Ссылка, которую вы хотите использовать:

file:///home/patrick/A.pdf#B

это стандартный формат ссылки, где file:///home/patrick/A.pdf указывает на местоположение файла, а #B ссылается на именованную цель, заданную в документе PDF.

3. Проблема автоматизации

К сожалению, Evince не поддерживает открытие PDF-документа с указанием именованной цели по умолчанию при переходе по ссылке, однако существуют некоторые обходные пути, которые могут помочь вам достичь желаемого результата.

4. Решение с использованием класса xdg-open

Одним из решений является использование xdg-open, который предназначен для открытия приложений в соответствии с установленными ассоциациями файлов. Настройте обработчик ссылок таким образом, чтобы использовать команду, которая позволяет передавать необходимые параметры в Evince.

5. Создание скрипта для обработки ссылок

Создайте простой скрипт, который будет принимать аргумент с именованной целью и передавать его в Evince. Вот пример такого скрипта на Bash:

#!/bin/bash

# Получаем URL из первого аргумента
URL="$1"

# Извлекаем PDF и именованную цель
PDF_FILE=$(echo $URL | cut -d '#' -f 1)
NAMED_DEST=$(echo $URL | cut -d '#' -f 2)

# Открываем PDF с указанием именованной цели
evince --named-dest="$NAMED_DEST" "$PDF_FILE"

Сохраните этот скрипт, например, как open_pdf.sh и сделайте его исполняемым:

chmod +x open_pdf.sh

6. Настройка xdg-open

Теперь вам нужно изменить настройки xdg-open, чтобы он использовал ваш скрипт для открытия PDF-файлов. Вы можете сделать это, создав новый MIME-тип для PDF, который будет вызывать ваш скрипт.

  1. Создайте файл ~/.local/share/applications/pdf-handler.desktop с содержимым:
[Desktop Entry]
Type=Application
Name=PDF Link Handler
Exec=/path/to/open_pdf.sh %U
Terminal=false
MimeType=application/pdf;
  1. Обновите базу данных MIME:
update-desktop-database ~/.local/share/applications

7. Тестирование

Теперь, когда вы нажимаете на ссылку file:///home/patrick/A.pdf#B, должно автоматически открываться окно Evince с вашим документом на указанной именованной цели.

Заключение

Таким образом, вы смогли настроить автоматическую обработку именованных целей в PDF-документах при использовании Evince. Этот подход может потребовать некоторой доработки в зависимости от вашей системы, но он обеспечивает мощный способ работы с PDF-документами, содержащими именованные ссылки.

Оцените материал
Добавить комментарий

Капча загружается...