こんにちは私はpdftkを使用して、送信されたフォームに基づいてPDFを生成しています。
ここまではすべて正常に動作しています。これは、署名の画像を追加しています。署名の画像ファイルを生成するのに最適な署名パッドを使用しています。今、私はその署名画像をPDFに追加しようとしていますか?これがpdftkでさえ可能かどうか誰かが知っていますか?それを行うオプションが表示されません。または、PDFにあるフォームに画像を添付することも可能ですか?
最初に画像をPDFに変換します
convert image.png image.pdf
次に、pdfjam(別の無料ツール)を使用して画像を拡大およびオフセットします
pdfjam --paper 'a4paper' --scale 0.3 --offset '7cm -12cm' image.pdf
次に、pdftkを使用して両方のPDFを結合します
pdftk text.pdf stamp image.pdf output combined.pdf
画像を配置して一般的なPDFの1ページだけに追加する必要がある場合は、STAMPtkをダウンロードする必要があるかもしれませんが、これは有料です。
ここからSTAMPtkをダウンロードできます http://www.pdflabs.com/tools/stamptk-the-pdf-stamp-maker/
お役に立てば幸いです。
この場合、PDFで動的署名を追加する必要があります。 pdftkとimagemagickライブラリを使用して実装しました。 (pdftkとimagemagickをインストールする必要があります)
exec( "convert姿-画像-サイズ変更26%-透明な白-ページa4 + 25 + 102 -quality 75出力/stamp.pdf");
説明:
2.次に、次のコマンドを実行します。
exec( "pdftkmain.pdfマルチスタンプstamp.pdf出力outputs/final.pdf");
Python用pdfjinja
https://github.com/rammie/pdfjinja
このライブラリを使用すると、位置情報をマージまたはベクトル化することなく、PDFの署名またはボタンオブジェクトに画像を追加できます。
1。 PDFテンプレートに署名要素を追加します
Adobe Proでは、PDF入力可能なフォームを作成および変更できます。[ツール]> [フォーム]> [編集]に移動し、[新しいフィールドの追加]ドロップダウンから[デジタル署名]を選択します。
配置後、デジタル署名要素のプロパティに移動します。
Tooltipプロパティで、を追加します
{{ Sig | paste }}
保存して閉じます。
2。署名画像をjpgまたはpngとして保存します
署名を画像として取得し、アクセス可能なフォルダーに配置するには、別の方法が必要になる場合があります。
3。 Pythonスクリプトにメソッドを追加します
from pdfjinja import PdfJinja
pdf_jinja_object = PdfJinja("path_to_pdf_template")
filled_out_pdf = pdf_jinja_object({
'firstName': 'John',
'lastName': 'Smith',
'sig': 'path_to_signature_image',
})
filled_out_pdf.write(open("output_file.pdf", 'wb'))
これにより、テンプレートで作成された場所に署名画像が配置されたフォームが作成されます。
まず、画像を次のようにpdfに変換します。(Windowsの場合はconvertの代わりにmagickを使用します)exec( "convert Signature-image -resize 26%-transparent white -page a4 + 25 + 102 -quality 75 outputs/stamp.pdf");
説明:
サイズ変更:画像のサイズを調整します。透明は画像の背景を透明にするページ:ページをa4に設定し、(25,102)は画像pdfの位置を左右から設定します。 2.次に、次のコマンドを実行します。
exec( "pdftkmain.pdfマルチスタンプstamp.pdf出力outputs/final.pdf");
ただし、特定の位置に署名を配置するには、空白を追加しますPDF署名の前にPDF以下に示すように:
exec("convert signature-image -resize 26% -transparent white -page a4+25+102 -quality 75 outputs/stamp.pdf");
exec("convert xc:none -page A4 outputs/blank1.pdf");
exec("convert xc:none -page A4 outputs/blank2.pdf");
exec("convert xc:none -page A4 outputs/blank3.pdf");
exec("pdftk outputs/blank1.pdf outputs/stamp.pdf outputs/blank2.pdf outputs/blank3.pdf cat output outputs/sign.pdf");
exec("pdftk main.pdf multistamp outputs/sign.pdf output outputs/final.pdf");