筆記された署名のスキャンされたコピーがあり、署名ブロックの一部のドキュメントにそれを適用する必要があります。以前は常にWindowsでこれを行っていましたが、現在はLinuxしかありません。
これは可能ですか? Linux(Gnome 3)でPDFファイルに署名イメージを追加するにはどうすればよいですか?
Xournalを使用すると、PDFに注釈を付けたり、カスタム画像(透明なPNGなど)を追加したりできます。フリーハンドでのメモや描画に使用されますが、PDFに注釈を付けることもできます。
Ubuntuの場合:
多くの人がXournalを推奨していますが、使用できないGimpのバージョンとして動作することがわかりました。したがって、Gimpに精通している場合は、試すことをお勧めします。
これは、1ページのドキュメントに署名する必要がある場合に定期的に行い、多かれ少なかれ5分かかります。残念ながら、たとえば複数ページのドキュメントのすべてのページに署名する必要がある場合、これは機能しません。後者の場合は、印刷して署名し、もう一度スキャンするだけです。
言及する価値があります Xournal これは素晴らしいUIがあり、テキスト、画像、手書きのメモをPDFファイルに追加できます。唯一の問題はそれです。ネイティブPDFフォームからのテキストをうまく処理しないようです。
既存のPDFファイルに署名を添付するために変更できるこのスクリプトを見つけました。
次のPastebin URLからダウンロードすることもできます。
これを行う他の多くの方法があるAskUbuntuに関するこのQ&Aもあります。 Q&Aのタイトルは次のとおりです。 既存のPDFファイルに画像を配置する方法 。
私は Pdf でかなり良い経験をしました。
Sudo add-apt-repository ppa:atareao/updf
Sudo apt-get update
Sudo apt-get install -y updf
次に バグ を Pythonスクリプト の2行を編集して)修正します。
UPdfを起動し、画像を追加ツールを選択し、署名を配置する領域の周りに長方形を描き、署名付きの画像ファイルを選択します。背景が透明なPNGが最適です。
このページのどこにも記載されていないLinux向けの最高の無料オフィスソフトウェアを見つけて驚いています。 LibreOffice DrawはPDFを開き、画像を挿入できるようにします。署名ファイルが透明な背景を持つPNGとしてファイルシステムに既に存在する場合、それをページに取得するのは簡単です。 、サイズを変更してDrawの所定の位置に移動します。DrawはデフォルトでドキュメントをODGとして保存するため、変更したドキュメントをPDFにエクスポートする必要があります。
自分の署名コマンドをシェルスクリプトに入れているときに、署名を配置する領域を対話的に選択する方法を探していました。幸いなことに、私はこの質問を見つけましたEmmanuel Branlardのスクリプトには、(xv
を使用して)その方法に関するアイデアが含まれています。次の点を実装しました。
display
の代わりにImageMagicks xv
を使用しますstdbuf -oL
および-update
オプションを使用してライブプレビューを行うpdftk stamp
でオーバーレイして、画質の低下を防ぎますgpg
で署名を復号化する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
Debian(ブルズアイ)では、最も簡単な(?)無料の方法が Scribus 1.5.5 を使用する方法であることがわかりましたPDF(これは可能かもしれません)以前のリリースでも):
PDFをインポートし、署名が必要な場所に画像ボックスを作成し、署名ファイルを選択し、必要に応じてサイズを変更して、新しいファイルとしてエクスポートしますPDF(もちろん、テキストボックスを使用して日付などの必要なテキストを配置します。)最終的にはGIMPや類似のものを使用することと同じですが、Scribusに精通している場合は数秒で完了します。アカウントをサインオフするために2回実行しました。私がここにたどり着いた方法です;)
完全を期すために、これを行う代替スクリプトがあります。これは、pdfを(低品質の)画像に変換しません。これは これまでに述べたもの とは対照的です: https:// github.com/martinruenz/signpdf
他のソリューションでの私の経験は:
Okular PDFビューアには注釈が組み込まれています。PDF署名したいものを開き、左側のバーでレビューを選択し、3番目のオプションを選択してください「フリーハンドライン」というポップアップメニューで、署名を描きます。ネオングリーンではなく黒のインクが必要な場合は、メニューから[設定]を選択し、[Okularの設定]を選択して、[注釈]ボタンを選択します左側のオプションから[フリーハンド線]を選択し、[編集]ボタンを選択します。ここで線の太さと色の両方を調整できます。[適用]をクリックしてお楽しみください。
私はビジネスを運営していますが、Xournalには必要なPDFファイルを品質または幅をもって管理する権限がありません。
また、デジタル署名を常に使用または適用しています。
マスターPDFエディター(現在のバージョン5)は、簡単に期待を超える有料アプリケーションであり、UbuntuのデフォルトのPDFリーダーになりました。主な機能:-文書に署名する-フォームに記入する-変更するテキストとオブジェクト-文書に注釈を付けて強調表示する-PDFファイルをマージして分割する-など
詳細については、次を参照してください。 https://code-industry.net/masterpdfeditor/?-about&ver=5438
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プログラムはインプレースで実行できます:
$ ./src/updf.py
残念ながら、入力ドキュメントと比較して、出力ドキュメントの品質は深刻な影響を受ける可能性があります。これを行う正しい方法は、無損失プロセスでオリジナルを変更せずに署名をオーバーレイすることです。一方、updfはオリジナルの再エンコードに従事しているようです。