Ghostscript を使用して PDF ファイルの周囲に黒い枠線を追加する

Ghostscript を使用して PDF ファイルの周囲に黒い枠線を追加する

私は Ghostscript を使用していくつかの PDF ファイルを処理していますが、ファイルの周囲に細い黒い枠線を追加したいと考えています。これは Ghostscript で実行できるものでしょうか、それともこれを実行できる他の (非損失の) コマンドライン ツールがあるのでしょうか?

答え1

これがあなたにとって十分に非可逆的かどうかはわかりませんが、イメージマジック:

convert foo.pdf -bordercolor black -border 10 foo_with_a_10px_border.pdf

確実にロスのないソリューションとして、境界線のみの1ページのPDF文書を作成できます。透明背景を作成し、文書の各ページに適用しますpdftkstampコマンド:

pdftk foo.pdf stamp border.pdf output foo_with_my_home-made_border.pdf

答え2

通常、これは、PDF を PostScript に変換し、先頭に小さな PostScript コードを追加してページ終了機能をオーバーライドしshowpage、これを印刷するか、PDF に変換することで実行できます。

およびを使用して、PDF への変換や PDF からの変換を行うことができますpdf2psps2pdfこれらは通常、Ghostscript に同梱されています。この例の PostScript コードは、A4 サイズの境界線を追加します。

%!PS
% A4 paper is  21.0 × 29.7 cm
/cm { 28.4 mul } bind def
/w 21.0 cm def
/h 29.7 cm def
/border 
{ 0.5 cm setlinewidth newpath
  0 0 moveto w 0 lineto w h lineto 0 h lineto closepath stroke
} bind def
/add-border { gsave initgraphics 0 setgray border grestore } def
/orig-showpage /showpage load def
/showpage { orig-showpage add-border } def
add-border

これを例えばファイルに入れてaddborder.ps

pdf2ps a.pdf a.ps
cat addborder.ps a.ps >b.ps
ps2pdf b.ps b.pdf
gv b.pdf

/wその他の用紙サイズの場合は、との定義を/hセンチメートル単位で編集します。例の線の幅は0.5 cm(または、線が用紙の端の中央に配置されている場合は、この半分) です。

関連情報