【问题标题】:Stamp PDF file with control for position of stamp file带有图章文件位置控制的图章 PDF 文件
【发布时间】:2012-01-18 05:45:29
【问题描述】:

有人知道如何将 PDF 文件标记为 PDF 文件以及用于定位 PDF 文件标记的控件吗?

我有一个文件 orginal.pdf 和 logo.pdf。我想在文件original.pdf 的左上角标记logo.pdf 文件到文件orginal.pdf。如何用 Ghostscript 或 pdftk 完成?

【问题讨论】:

    标签: pdf ghostscript pdftk


    【解决方案1】:

    可以用 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 磅,向顶部移动 790 磅(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
    

    这个示例应该让您充分了解如何为您自己的logo.pdf 开发类似的过程,就像我为我的stamp-small.pdf 所做的那样。 (我为右上角做的,你想要左上角的。)

    【讨论】:

    • 感谢您之前的回答。这个问题通过脚本 PHP 使用 FPDI 完成。
    • 不知道为什么这个答案没有被标记——它完全解决了我如何在 A4 页面上可靠地放置邮票的问题。很好的解释!
    • 是的,很好的回答,不知道为什么 OP 没有礼貌接受。
    • 这是一个很棒的答案。
    • 如果您已经将图章作为 PDF,但位置不正确,使用 pdfjam 创建覆盖 PDF 可能会更容易掌握。它具有--scale 和--offset 等选项。我使用convert、pdfjam 和pdftk stamp 在我的PDF 上放置了一个PNG。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-26
    • 1970-01-01
    相关资源
    最近更新 更多