Как вставить гиперссылку в PDF в терминале Linux?

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

Это не обязательно должен быть текст. Достаточно просто прямоугольника. Мне нужно что-то вроде этого:

insert_hyperlink -file my_pdf -page 3 -href "superuser.com" -rect 100x100+600+0

Я видел посты о вставке текста или водяных знаков, но ничего о гиперссылках. Меня также перенаправили на инструменты, такие как pdftk, но я не могу найти способ сделать это. Другие сайты решают эту проблему с помощью Adobe и онлайн-инструментов, но мне нужно что-то бесплатное, что работает в оболочке Linux.

Недавно я нашел эту библиотеку python, которая могла бы помочь: PyPDF2.

Вот раздел в документации о добавлении аннотаций с ссылками.

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

Для вставки гиперссылки в PDF-файл в Linux через командную строку можно воспользоваться библиотекой Python, такой как PyPDF2. Ниже представлен детализированный пошаговый процесс, который поможет вам достичь этой задачи.

Шаг 1: Установка необходимых компонентов

Прежде всего, вам нужно установить Python и библиотеку PyPDF2. В современном дистрибутиве Linux Python уже может быть установлен, если нет — используйте следующую команду для установки:

sudo apt-get install python3 python3-pip

Затем установите библиотеку PyPDF2:

pip3 install PyPDF2

Шаг 2: Написание скрипта на Python

Создайте новый файл, например insert_hyperlink.py, и откройте его в текстовом редакторе. Добавьте следующий код, который использует PyPDF2 для вставки гиперссылки:

import PyPDF2

def insert_hyperlink(pdf_file, page_number, url, rect):
    # Открываем существующий PDF файл
    with open(pdf_file, "rb") as file:
        reader = PyPDF2.PdfReader(file)
        writer = PyPDF2.PdfWriter()

        # Копируем все страницы в writer
        for i in range(len(reader.pages)):
            page = reader.pages[i]

            if i == page_number:
                # Создаем аннотацию ссылки
                link = {
                    "/Type": "/Annot",
                    "/Subtype": "/Link",
                    "/Rect": rect,
                    "/A": {
                        "/S": "/URI",
                        "/URI": url,
                    },
                }
                page.add_annotation(link)

            writer.add_page(page)

        # Сохраняем новый PDF
        with open("output.pdf", "wb") as output_file:
            writer.write(output_file)

if __name__ == "__main__":
    pdf_file = "my_pdf.pdf"
    page_number = 2  # Страницы начинаются с 0
    url = "https://superuser.com"
    rect = [100, 500, 200, 550]  # Координаты x1, y1, x2, y2

    insert_hyperlink(pdf_file, page_number, url, rect)

Шаг 3: Запуск скрипта

Теперь вы готовы к запуску вашего скрипта. В командной строке выполните:

python3 insert_hyperlink.py

После успешного выполнения команды в текущей директории появится новый файл output.pdf, в который будет добавлена гиперссылка.

Параметры функции

  • pdf_file: имя исходного PDF-файла.
  • page_number: номер страницы (начиная с 0), на которой вы хотите вставить ссылку.
  • url: адрес гиперссылки.
  • rect: список с координатами прямоугольника [x1, y1, x2, y2], который будет определять область клика по ссылке.

Заключение

Используя предложенный выше метод, вы можете легко добавлять гиперссылки в PDF-файлы в среде Linux. Этот подход обеспечит вам необходимую гибкость и удобство работы, а использование Python добавляет потенциал для дальнейших автоматизаций и улучшений. Не забудьте проверить документацию PyPDF2 для более глубокой интеграции и расширенных возможностей работы с PDF.

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

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