印章PDF文件,控制印章文件的位置

时间:2011-12-12 06:49:15

标签: pdf ghostscript pdftk

有谁知道将PDF文件标记为PDF文件以及定位PDF文件标记的控件?

我有一个文件orginal.pdflogo.pdf。我想将logo.pdf文件标记为文件orginal.pdf左上角的文件original.pdf。如何使用 Ghostscript pdftk 完成?

1 个答案:

答案 0 :(得分:27)

可以使用Ghostscript plus pdftk完成,但它至少需要2个不同的步骤。

AFAIK,您无法直接控制pdftk的邮票展示位置。默认情况下,它会将标记放在页面的中心,同时执行“按比例缩放”操作。

因此,您必须首先修复您的图章,使其首先放在空白页面上,就在您想要的位置。这可以在Ghostscript的帮助下实现第一步。然后,在第二步中,使用pdftk合并这两个文件。

我们来看一个例子。

首先:创建'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"

此示例适用于Linux或Mac OS X.在Windows上,您可以像这样修改它:

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"

(您也可以将它全部放在一行中,但是跳过相应操作系统的行继续标记。)第一个命令将一系列简单的PostScript语句交给Ghostscript的命令行,并告诉它创建一个小的PDF页面尺寸为320x50点。这应该模拟你寻找位置的“小”标记。

第二名:创建一个完整的页面(在我的情况下,是一个A4大小的)PDF文件,可以在第三步中应用为真正的标记:

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

在Windows上:

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

这个命令实现了几个方面:

  1. 最初创建的'stamp-small.pdf'作为输入。
  2. 它使用了595x842点的画布(即ISO A4页面尺寸)。
  3. 它应用一个小的PostScript命令将输入​​内容向右移动280 pts,向右移动790 pts(PostScript和PDF坐标从左下角开始计数)。
  4. 创建'A4-stamp.pdf'作为输出。
  5. 实际上,我原来的小尺寸邮票字符串现在位于A4页面的右上角。

    第三:现在,您可以使用pdftk将此新“图章”应用于原始PDF文件:

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

    或者,标记多页原始PDF的所有页面:

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

    此示例应该为您提供足够的想法,让您了解如何为我自己的logo.pdf开发类似的程序,就像我为stamp-small.pdf所做的那样。 (我是在右上角做的,你想要你的左上角。)