web-dev-qa-db-ja.com

既存のPDFファイルにガター(バインディングマージン)を追加する

PDFドキュメントにガターマージン(奇数ページと偶数ページで異なる)を追加して、印刷後に穴を開ける余地があるようにするにはどうすればよいですか?GhostscriptとLinuxターミナルですが、この特定のニーズを満たすためのコマンドを見つけることができませんでした。

現在、一部のコンテンツはエッジに近すぎます。印刷ダイアログボックスでスケーリングを使用して製本用のスペースを作成することもできますが、これにより、絶対に必要なサイズよりもサイズが小さくなり、ページの両側にギャップが残ります。

ここでは、ページのいずれかの側(奇数ページの場合は左、偶数ページの場合は右)にセンチメートルを追加するだけのソリューションで十分です。印刷時に「スケールに合わせて」機能を選択できるからです。

私の質問は最初は this の重複としてマークされていましたが、どちらの回答も私の問題を解決しません。 BrissとPDFはさみの両方を使用してみましたが、これらはPDFトリミングツールであり、ページを小さくすることしかできず、大きくすることはできません。私の質問も異なります。奇数ページと偶数ページでサイズを変更する必要があります。元の質問の質問者には、この要件はありませんでした。

4
HullCityFan852

時間があるときにこれを適切な答えに拡張するつもりですが、その間に誰かがそれを必要とする場合に備えて、これが私が見つけた解決策です。アイデアは、Ghostscriptを-cオプションとともに使用して、カスタムPostScriptを使用してPDFファイルを変更することです。

まず、元のPDFポイント単位(1インチに72ポイントあります)の高さと幅を知る必要があります。ツール「pdfinfo」を使用して、この情報を見つけることができます。

pdfinfo "inputFile.pdf"

A4ドキュメントがあるとします-A4は595ポイント×842ポイント(210mm×297mm)です。

A4ドキュメントに10mm(= 1cm = 28pts)のガターを追加する場合は、Ghostscriptに次の情報を提供する必要があります。

-dDEVICEHEIGHTPOINTS=842(A4の高さ)
-dDEVICEWIDTHPOINTS=623(= 595 + 28、つまり、A4の幅+追加するガター)
{28 0 translate} {}({奇数ページを右に28ポイント、上に0ポイントシフト} {偶数ページには何もしない})

注:幅を広く指定すると、ページの右側にスペースが追加されるため、翻訳する必要があるのは奇数ページのみです。偶数ページはすでに正しくレイアウトされています。

Linuxの完全なコマンドは次のとおりです。

gs -q -sDEVICE=pdfwrite -dBATCH -dNOPAUSE -sOutputFile=outputFile.pdf \
  -dDEVICEWIDTHPOINTS=623 -dDEVICEHEIGHTPOINTS=842 -dFIXEDMEDIA \
  -c "<< /CurrPageNum 1 def /Install { /CurrPageNum CurrPageNum 1 add def
   CurrPageNum 2 mod 1 eq {28 0 translate} {} ifelse } bind  >> setpagedevice" \
  -f "inputFile.pdf"

注:このコマンドを使用すると、PDF A4より1cm広くなります。次にA4に印刷すると、すべてが収まるように縮小され、ガターは実際には1cmよりわずかに薄くなります(9.5mmになります)。 )それでも不十分な場合は、正しいオフセットを取得するために少し代数を実行する必要があります。この場合、10.0mmの印刷されたガターを取得するには、28ポイントではなく29.8ポイントになります(設定する必要もあります)。 -dDEVICEWIDTHPOINTS=624.8)。ただし、ガターが約2cm未満の場合、特に印刷と用紙サイズの許容誤差を考慮すると、計算を行う価値はないでしょう。

7
HullCityFan852