2011-12-12 47 views
9

PDFファイルをスタンプすることについて誰も知っていますか?スタンプファイルの位置を制御するスタンプPDFファイル

私はファイルorginal.pdflogo.pdfを持っています。ファイルoriginal.pdfの左上にorginal.pdfというファイルにlogo.pdfというファイルをスタンプしたいと思います。 ゴーストスクリプトまたはpdftkでどうすればいいですか?

答えて

26

Ghostscript pdftkで行うことができますが、少なくとも2つの異なるステップが必要です。

AFAIK、pdftkのスタンプの配置を直接制御することはできません。デフォルトでは、スタンプはページの中央に配置され、同時に「拡大縮小」操作も行われます。

したがって、最初にスタンプを修正する必要があります。最初にスタンプを空のページに配置し、必要な位置に置いてください。これは、最初のステップでGhostscriptの助けを借りて達成することができます。次に、2番目のステップで、pdftkを使用して2つのファイルをマージします。

例を使用してみましょう。

最初に: 'stamp-small.pdf'を作成します。 (あなたはすでにあなたを持っている。私は原理を実証するものを必要とする。)

gs \ 
    -o stamp-small.pdf \ 
    -sDEVICE=pdfwrite \ 
    -g3200x500 \ 
    -c "/Helvetica-Bold findfont 36 scalefont setfont" \ 
    -c "0 .8 0 0 setcmykcolor" \ 
    -c "12 12 moveto" \ 
    -c "(This is my stamp) show" \ 
    -c "showpage" 

この例では、Windows上でLinuxやMac OS X用だったあなたはこのようにそれを修正します:

gswin32c.exe^
    -o stamp-small.pdf^
    -sDEVICE=pdfwrite^
    -g3200x500^
    -c "/Helvetica-Bold findfont 36 scalefont setfont"^
    -c "0 .8 0 0 setcmykcolor"^
    -c "12 12 moveto"^
    -c "(This is my stamp) show"^
    -c "showpage" 

(あなたすべての行を1行にすることもできますが、それぞれのOSの行継続マークはスキップします)。この最初のコマンドは、Ghostscriptのコマンドラインに一連の簡単なPostScript文を渡し、サイズが320x50の小さなPDFページを作成するように指示しますpts。これはあなたが配置を求めるあなたの「小さな」スタンプをシミュレートするはずです。

第二:はフルページを作成します(私の場合には、A4サイズの)本当のスタンプとして第三段階で適用することができるPDFファイル:Windowsで

gs \ 
    -o A4-stamp.pdf \ 
    -sDEVICE=pdfwrite \ 
    -g5950x8420 \ 
    -c "<</PageOffset [280 790]>> setpagedevice" \ 
    -f stamp-small.pdf 

  1. それは最初に作成したのを取っ:
    gswin32c.exe^
        -o A4-stamp.pdf^
        -sDEVICE=pdfwrite^
        -g5950x8420^
        -c "<</PageOffset [280 790]>> setpagedevice"^
        -f stamp-small.pdf 
    

    このコマンドは、いくつかのことを達成しましたtamp-small.pdf 'を入力します。

  2. 595x842pt(ISO A4ページサイズ)のキャンバスを使用しました。
  3. 入力内容を右に280pt、上に790ptシフトする小さなPostScriptコマンドを適用します(PostScriptとPDFの座標は左下隅から数え始めます)。
  4. 出力として 'A4-stamp.pdf'を作成します。

私の元の小さなスタンプストリングは効果的に、A4ページの右上隅にあります。

サード:今、あなたはpdftkを使用して、元のPDFファイルにこの新しい「スタンプ」を適用することができます。

pdftk original.pdf stamp A4-stamp.pdf output stamped.pdf 

や、複数ページ元のPDFのすべてのページをスタンプする:

pdftk original.pdf multistamp A4-stamp.pdf output stamped.pdf 

この例では、stamp-small.pdfと同じように、自分自身でlogo.pdfの類似の手順を作成する方法について十分に考えてください。 (私は右上隅のためにそれをやった、あなたは左上隅にあなたがしたい)。

+0

ありがとうございます。この問題は、スクリプトPHPでFPDIを使用して行われます。 –

+3

この答えがタグ付けされなかった理由を知りません - A4ページにスタンプを確実に配置する方法の問題を完全に解決しました。素晴らしい説明! – galactica

+1

うん、すごく答えた、OPがなぜ受け入れる良さを持っていなかったのか分からない。 –

関連する問題