Как я могу добавить подпись .png к PDF в Linux?

Oracle Linux основана на RHEL (Red Hat Enterprise Linux). Это может использоваться или в качестве сервера или в качестве рабочего стола как совместимая альтернатива RHEL.

Что касается рабочего стола при поиске новейших пакетов (GNOME 3, последние версии KDE, и т.д....), Вы не найдете их в в Oracle Linux или любой клон RHEL (CentOS, Научный Linux и т.д....).

74
08.08.2013, 02:32
13 ответов

Используя Xournal, вы можете комментировать PDF-файлы и добавлять собственные изображения (например, прозрачный PNG). Хотя он используется для создания заметок и рисования от руки, он также может комментировать PDF-файлы.

В Ubuntu:

  • Установите Xournal через Центр программного обеспечения Ubuntu
  • Откройте Xournal
  • Выберите «Аннотировать PDF» в меню «Файл» и выберите свой PDF-файл для подписи.
  • Щелкните кнопку «Изображение» на панели инструментов (она выглядит как силуэт человека).
  • Щелкните документ. Откроется диалоговое окно файлового браузера.
  • Выберите изображение PNG для вашей подписи.
  • Измените размер и положение изображения в PDF.
  • Выберите «Экспорт в PDF» в меню «Файл».

Дополнительная информация на http://www.howtogeek.com/215485/sign-pdf-documents-without-printing-and-scanning-them-from-any-device/

99
27.01.2020, 19:31

Я нашел этот сценарий, который можно изменить для присоединения подписи к существующему файлу PDF.

Можно также загрузить его с этого pastebin URL:

Существует также это Вопросы и ответы на AskUbuntu, который имеет много других методов для того, чтобы сделать это. Вопросы и ответы названы: Как поместить изображение на существующий файл PDF?.

8
27.01.2020, 19:31
  • 1
    @Freedom_Ben - также, если Вам интересно, я нашел, как подписать Ваш PDFs использование сертификатов вместо просто PNG. LMK. –  slm♦ 08.08.2013, 01:44
  • 2
    Проблема состоит в том, что это создает изображения страниц в очень плохом качестве.:/другой ответ (о updf) работает лучше. :) –  odinho - Velmont 04.06.2014, 14:11
  • 3
    @slm: Очень верный. Но это все еще создает/picture/страницы, вместо того, чтобы только штамповать изображение на подобном updf делает. pdftk также может сделать такие операции, но нуждался бы в сценарии драйвера как тот здесь. –  odinho - Velmont 04.06.2014, 14:16
  • 4
    я использовал pdftk и reportlab, чтобы сделать подобные вещи прежде (слияние сверху PDF): stackoverflow.com/questions/356502 / … - приложил много усилий узнать эффективный путь. Очень много плохих способов обработать PDFs там. –  odinho - Velmont 04.06.2014, 15:07
  • 5
    там версия этого, не использует xv? Слишком трудно установить xv и это не бесплатное программное обеспечение... –  Chris Beck 12.12.2016, 21:09

У меня был довольно хороший опыт с uPdf.

Установка

sudo add-apt-repository ppa:atareao/updf
sudo apt-get update
sudo apt-get install -y updf

Затем исправьте ошибку путем редактирования 2 строк в сценарии Python.

Использование

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

7
27.01.2020, 19:31
  • 1
    lol, это так забавно о редактировании 2 строк Python. Поскольку я - тот, который создал тот комментарий. И здесь я ищу способ подписать PDF снова, настолько довольный услужливыми людьми на intarwebs :) –  odinho - Velmont 04.06.2014, 14:12
  • 2
    Похож на последний выпуск, был для Ubuntu Quantal. Добавление repo на 15,04 (Ярких) ошибках с "Неудавшимся для выборки..." –  Ponkadoodle 16.06.2015, 23:20
  • 3
    @Wallacoloo ответа, пакет только создается для Полного нетерпения и Дерзкого. Для любого другого распределения необходимо вручную изменить распределение в lst файл, созданный в /etc/apt/sources.list.d. –  kynan 17.06.2015, 01:31
  • 4
    Катастрофические отказы после экрана-заставки на Коварных 15,10 использованиях или дистрибутивы Precise или Quantal. –  Jonathan Neufeld 06.01.2016, 03:33

Многие люди рекомендуют Xournal, но я обнаружил, что он работает как версия GIMP, которую я не могу использовать. Таким образом, если вы знакомы с GIMP, я бы порекомендовал его попробовать.

  • У вас должен быть файл с подписью (даже снимок, сделанный с помощью телефона или веб-камеры) и файл с подписываемым документом. Последний будет в формате PDF, который может быть открыт GIMP
  • Применить порог к подписи, если белый цвет недостаточно белый
  • Преобразовать белый в альфа-канал в подписи, если фон документа не является белый
  • Откройте документ с помощью GIMP
  • Откройте подпись поверх документа как новый слой (Файл -> Открыть как слой)
  • Отрегулируйте размер и положение
  • Объединить слои
  • Экспорт в PDF

Я делаю это регулярно, когда мне нужно подписать одностраничные документы, и это занимает у меня около пяти минут. К сожалению, это не сработает, если вам нужно, например, подписать каждую страницу многостраничного документа. В последнем случае я просто распечатываю, подписываю и снова сканирую!

10
27.01.2020, 19:31

При добавлении моих собственных команд подписи в сценарий оболочки я был ищу способ интерактивного выбора области, в которой должна располагаться подпись. К счастью, я нашел этот вопрос, и сценарий Эммануэля Бранларда содержит идею о том, как это сделать (с помощью xv ). Я реализовал следующие пункты:

  • используйте ImageMagicks display вместо xv
  • используйте stdbuf -oL и параметр -update , чтобы иметь предварительный просмотр в реальном времени
  • наложение подписи с штампом pdftk для предотвращения ухудшения качества изображения
  • извлечение только определенной страницы из файла PDF
  • расшифровка подписи с помощью gpg
  • encrypt подписанный PDF-файл с pdftk
  • промежуточные файлы очистки, содержащие подпись с помощью wipe

Итак, вот код:

#!/bin/env zsh

#dependencies: pdftk, ImageMagick, gpg, wipe, openssl

signature=~/PGP/signature.png.gpg

f=${1%.pdf}
page=$2
density=144
bo=0.2 #baseline overlap in relation to y-size of the signature

pagecount=$(pdftk $f.pdf dump_data | grep NumberOfPages | sed "s/.*: //")
#sign on last page by default
if [ -z "$page" ]; then page=$pagecount; fi

function cleanup
{
    echo "Cleaning up..."
    rm $f.$page.pdf
    wipe $f.$page.signature.pdf $f.$page.signed.pdf $f.signed.pdf signature.png
}
trap cleanup EXIT

echo "Signing document $f.pdf on page $page."

echo "Decrypting signature..."
gpg -d $signature > signature.png
identity=$(identify -format "%w,%h,%x,%y" signature.png)
sdata=(${(s/,/)identity})

echo "Please give the signature area with two clicks and finish by pressing ‘q’!"

#extract page
pdftk $f.pdf cat $page output $f.$page.pdf
cp $f.$page.pdf $f.$page.signed.pdf
size=$(identify -format "%wx%h" $f.$page.pdf)

#select signature area
display -density $sdata[3]x$sdata[4] -immutable -alpha off -update 1 -debug X11 -log "%e" -title "sign $f.pdf#$page" $f.$page.signed.pdf 2>&1 >/dev/null | \
    grep --line-buffered "Button Press" | \
    stdbuf -oL sed -r "s/^.*\+([0-9]+)\+([0-9]+).*$/\1,\2/" | \
    while read line
do
    p1=($p2)
    p2=(${(s/,/)line})

    if [ -n "$p1" ]
    then
        p=(0 0)
        if (( p1[1] < p2[1] )); then dx=$((p2[1]-p1[1])); p[1]=$p1[1]; else dx=$((p1[1]-p2[1])); p[1]=$p2[1]; fi
        if (( p1[2] < p2[2] )); then dy=$((p2[2]-p1[2])); p[2]=$p1[2]; else dy=$((p1[2]-p2[2])); p[2]=$p2[2]; fi
        dy=$((dy*(1+bo)))

        if (( $dx*$sdata[2] > $sdata[1]*$dy ))
        then
            resize=$(((dy+0.0)/sdata[2]))
            p[1]=$((p[1]+(dx-resize*sdata[1])/2))
        else
            resize=$(((dx+0.0)/sdata[1]))
            p[2]=$((p[2]+(dy-resize*sdata[2])/2))
        fi

        echo "Inserting signature..."
        convert -density $density -size $size xc:transparent \( signature.png -resize $((resize*100))% \) -geometry +$p[1]+$p[2] -composite $f.$page.signature.pdf
        pdftk $f.$page.pdf stamp $f.$page.signature.pdf output $f.$page.signed.pdf

        unset p1 p2
    fi
done

if [ -z "$p" ]
then
    echo "You have to click two times. Aborting..."
    exit 1
fi

echo "Joining PDF pages..."
sew=( pdftk A=$f.pdf B=$f.$page.signed.pdf cat )
if (( page > 1 )); then
    sew+=A1-$((page-1))
fi
sew+=B
if (( page < pagecount )); then
    sew+=A$((page+1))-end
fi
sew+=( output $f.signed.pdf )
$sew

echo "Encrypting PDF file..."
pdftk $f.signed.pdf output $f.signenc.pdf user_pw PROMPT owner_pw $(openssl rand -base64 32) allow AllFeatures
5
27.01.2020, 19:31

Это стоит упомянуть XURLNAL , который имеет хороший пользовательский интерфейс и позволяет добавлять текст, изображения и рукописные заметки в файлы PDF. Единственная проблема, которую у меня имела, это, кажется, не очень хорошо справляется с текстом из родных форм PDF.

9
27.01.2020, 19:31

UPDF действительно хорош для этого. Использование предварительного просмотра MacOS для документов «Подписать», UPDF предлагает ближайший пользовательский опыт для этого.

Следующие работы по Ubuntu 14.10 и Debian 8.

Я не хотел добавлять третью сторону PPA в мою систему, поэтому установлен UPDF следующим образом:

$ bzr branch lp:updf

затем сделали 2 строки редактировать , на ссылку на другой ответ.

Установка зависимостей:

# apt-get install python-poppler gir1.2-gtk-3.0 gir1.2-gdkpixbuf-2.0 gir1.2-poppler-0.18 python-cairo librsvg2-2 gir1.2-rsvg-2.0 python-gi-cairo

(вышеупомянутое было достаточно; не каждый пакет может быть необходима, хотя).

, а затем программа Python Runnable устанавливается:

$ ./src/updf.py

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

0
27.01.2020, 19:31

Para completar, hay una secuencia de comandos alternativa para hacer esto, que no convierte el pdf en una imagen (de baja calidad ), en contraste con la mencionada hasta ahora:https://github.com/martinruenz/signpdf

Mi experiencia con las otras soluciones fue:

  • Xournal se mezcló con el pdf (aunque parecía funcionar después de construir desde la fuente)
  • El scriptSignPDFconvierte archivos PDF en imágenes y reduce significativamente la calidad. También tiene una dependencia problemática (xv)
  • No probé la opción gimp y updf
  • Al final utilicé Acrobat Reader en una VM ya que también tuve que llenar varios formularios
4
27.01.2020, 19:31

В программу просмотра PDF-файлов Okular встроены -аннотации. Откройте PDF-файл, который вы хотите подписать, выберите обзоры на панели слева, выберите третий вариант во всплывающем меню с надписью «линия от руки». Вытяните свою подпись. Если вы хотите использовать черные чернила, а не неоново-зеленый, выберите «Настройки» в меню, выберите «Настроить Okular», нажмите кнопку «Аннотации» слева. Выберите «Свободная линия» из вариантов, затем нажмите кнопку «Редактировать». Здесь вы можете настроить как толщину линии, так и цвет. Нажмите «Применить» и наслаждайтесь.

4
27.01.2020, 19:31

Я занимаюсь бизнесом, и Xournal не имеет необходимого качества или широты контроля над файлами PDF.

Я также постоянно использую или применяю цифровые подписи.

Master PDF Editor (версия 5 на данный момент )является платным приложением, которое легко превосходит все ожидания и теперь является моей программой чтения PDF по умолчанию для Ubuntu. Ключевая особенность :-подписывать документы -заполнить формы -изменить текст и объекты -комментировать и выделять документы -объединять и разделять PDF-файлы -и т. д.

Подробнее см.:https://code-industry.net/masterpdfeditor/?-about&ver=5438

0
27.01.2020, 19:31

В Debian (Bullseye )Я нашел самый простой (? )бесплатный способ — использовать Scribus 1.5.5 который может легко импортировать PDF (это возможно и в более ранних версиях):

Импортируйте PDF-файл, затем создайте поле изображения, в котором вы хотите поставить свою подпись, выберите файл подписи, измените размер по мере необходимости, а затем экспортируйте как новый PDF-файл. (Конечно, вы можете использовать текстовое поле для размещения необходимого текста, такого как как дату и т. д. )В конечном счете, это ничем не отличается от использования GIMP или подобного, но если вы знакомы со Scribus, то это займет несколько секунд. Я только что сделал это дважды для списания аккаунтов, вот так я и оказался здесь;)

5
27.01.2020, 19:31

Я был удивлен, обнаружив, что нигде на этой странице не упоминается лучшее бесплатное офисное программное обеспечение для Linux. LibreOffice Draw откроет PDF-файл и позволит вам вставить изображение. Если ваш файл подписи уже существует в файловой системе в формате PNG с прозрачным фоном, вы можете легко перенести его на страницу, изменить размер и переместить на место в Draw. Draw по умолчанию сохранит документ как ODG, поэтому вам нужно будет экспортировать измененный документ в PDF.

53
27.01.2020, 19:31

Позвольте мне начать с самого начала вопроса, в котором упоминается «отсканированная копия моей письменной подписи». Я использовал фото, сделанное на телефон. Кстати, я рекомендую использовать чернила или прочную черную ручку, чтобы убедиться, что написанная часть имеет четкие линии, которые выделяются на фоне белой бумаги.

Шаг 1 -Создание прозрачного изображения подписи

Вам нужно будет сделать это только один раз. Для этого я использовал gimp, который вы можете установить на Ubuntu с помощью:

sudo apt install gimp

Вы можете начать с получения красивого прямоугольника только с подписью. Для этого я использовал инструмент «Прямоугольное выделение», затем «Правка» > «Вырезать» и «Правка» > «Вставить как новое изображение».

Затем я выполнил шаги, чтобы сделать фон прозрачным с помощью инструмента «Нечеткое выделение» и нажав Delete. Это избавляет от белого фона (, важного, потому что в моем случае изображение не было чистым белым, оно было больше похоже на серый ), оставляя только черную подпись. Затем я экспортировал это в файл PNG. Теперь у меня есть файл подписи, который я могу использовать повторно!

Шаг 2 -Вставка подписи в PDF

Наличие прозрачной подписи упрощает использование различных инструментов. Я снова использовал GIMP . Мне дали документ Word, поэтому я сначала использовал LibreWriter, чтобы преобразовать его в PDF. Затем я открыл его с помощью GIMP и принял значения по умолчанию для каждой страницы в качестве слоя.

Затем я открыл файл с подписью, выбрав «Файл» > «Открыть как слои». Я использовал CTRL+S, чтобы изменить его размер, а затем инструмент «Перемещение», чтобы красиво расположить его на странице.Затем я щелкнул правой кнопкой мыши -по слою с подписью справа и выбрал «Объединить вниз».

Последним шагом было использование «Файл > Экспортировать как» и присвоение имени файла расширения PDF. В диалоговом окне параметров я принял значение по умолчанию «использовать слои как страницы», а также должен был отметить «обратный порядок страниц», чтобы получить правильную страницу порядка.

Примечание.:Я делал это раньше в Windows, и это было намного проще с Acrobat Reader, потому что у меня уже было прозрачное изображение. Хотя метод Linux немного сложнее, он не намного сложнее, если вы будете следовать инструкциям, когда у вас есть прозрачный PNG. Приветствуются любые предложения по улучшению этого ответа.

0
21.04.2021, 10:31

Теги

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