誰かがpdfのページを真ん中から2つの新しいページに分割する良い方法を知っていますか?
明確にするために、PDFから既存のページを分割しようとはしていません。既存の単一ページから2つの新しいページを作成しようとしています。
誰かがpdfのページを真ん中から2つの新しいページに分割する良い方法を知っていますか?
明確にするために、PDFから既存のページを分割しようとはしていません。既存の単一ページから2つの新しいページを作成しようとしています。
回答:
BRISSをお試しください。
GUIで領域を定義することにより、各ページを必要な数のサブページに分割できます。同様のすべてのページがグループにグループ化されるため、そのグループのリージョンを一度定義できます。
クロスプラットフォームで、無料で、オープンソースです。
Ghostscriptを使用してこれを解決できます。pdftk
それだけではできません(私の知る限り)。これを手動で行うためのコマンドライン手順を紹介します。ページサイズとページ番号のさまざまなパラメーターを使用して、これをプロシージャとして簡単にスクリプト化できます。しかし、あなたはそれを自分でできると言った;-)
...そしてその楽しみのために、私は最近、「ダブルアップ」ページを備えた入力ファイルではなく、「トレブルアップ」を備えた入力ファイルでそれを行いました。この場合の回答は、この他の応答で読むことができます。
あなたのケースはさらにシンプルです。次のようなものがあるようです。
+------------+------------+ ^
| | | |
| 1 | 2 | |
| | | 595 pt
| | | |
| | | |
| | | |
+------------+------------+ v
^
fold
v
+------------+------------+ ^
| | | |
| 3 | 4 | |
| | | 595 pt
| | | |
| | | |
| | | |
+------------+------------+ v
<---------- 842 pt -------->
4ページのPDFを1つ作成します。各ページのサイズは421 pt x 595 ptです。
最初に、各入力ページから左側のセクションを抽出しましょう。
gs \
-o left-sections.pdf \
-sDEVICE=pdfwrite \
-g4210x5950 \
-c "<</PageOffset [0 0]>> setpagedevice" \
-f double-page-input.pdf
これらのパラメーターは何をしましたか?
まず、PDFで1インチ== 72ポイントであることを知ってください。それから残りは:
-o ...............:
出力ファイルに名前を付けます。暗黙的にも使用し-dBATCH -dNOPAUSE -dSAFER
ます。-sDEVICE=pdfwrite :
出力形式としてPDFが必要です。-g................:
出力メディアのサイズをピクセル単位で設定します。pdfwriteのデフォルトの解像度は720 dpiです。したがって、10を乗算してPageOffsetの一致を取得します。-c "..............:
Ghostscriptに、メイン入力ファイルの直前に、指定されたPostScriptコードスニペットを処理するよう要求します(これはに従う必要があります-f
)。<</PageOffset ....:
メディア上のページ画像のシフトを設定します。(もちろん、左のページの場合、シフトによる[0 0]
影響はありません。)-f ...............:
この入力ファイルを処理します。最後のコマンドはどの結果を達成しましたか?
これです:
Output file: left-sections.pdf, page 1
+------------+ ^
| | |
| 1 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
Output file: left-sections.pdf, page 2
+------------+ ^
| | |
| 3 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
<-- 421 pt -->
次に、適切なセクション:
gs \
-o right-sections.pdf \
-sDEVICE=pdfwrite \
-g4210x5950 \
-c "<</PageOffset [-421 0]>> setpagedevice" \
-f double-page-input.pdf
結果:
Output file: right-sections.pdf, page 1
+------------+ ^
| | |
| 2 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
Output file: right-sections.pdf, page 2
+------------+ ^
| | |
| 4 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
<-- 421 pt -->
次に、ページを1つのファイルに結合します。ghostscriptでも同様にできますが、pdftk
代わりに使用します。このジョブの方が高速だからです。
pdftk \
A=right-sections.pdf \
B=left-sections.pdf \
shuffle A B \
output single-pages-output.pdf
verbose
できた これが望ましい結果です。4つの異なるページ、サイズ421x595 pt。
結果:
+------------+ +------------+ +------------+ +------------+ ^
| | | | | | | | |
| 1 | | 2 | | 3 | | 4 | |
| | | | | | | | 595 pt
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
+------------+ +------------+ +------------+ +------------+ v
<-- 421 pt --> <-- 421 pt --> <-- 421 pt --> <-- 421 pt -->
"<</PageOffset [-421 0]>> setpagedevice"
。元のファイルの向きに依存すると思います。それにもかかわらず優れた答え。:)
@martttとUnix&Linuxでの回答に感謝します。
以下を使用できますmutool
(これはの一部として提供されますmupdf
):
mutool poster -x 2 input.pdf output.pdf
-y
垂直分割を実行する場合にも使用できます。
@Kurtの答えを拡張するには(コメントするのに十分なレピュテーションポイントがないため)、最初に使用するサイズがメディアボックスのサイズと異なる場合、クロップボックスのサイズに基づいていないことを確認します。出力サイズはメディアボックスのサイズに基づいていますが、オフセットはクロップボックスのサイズを使用しているようです。
20.0833 x 13.833のメディアボックスと、ドキュメントのトリムボックスと同じ19.25 x 13.0のクロップボックスがあるゲートフォールドページの場合、Ubuntuで左側の2つのページに分割します。
gs -o left.pdf -sDEVICE=pdfwrite -g7230x9960 -c "<</PageOffset [0 0]>> setpagedevice" -f gatefold.pdf
右側:
gs -o right.pdf -sDEVICE=pdfwrite -g7230x9960 -c "<</PageOffset [-693 0]>> setpagedevice" -f gatefold.pdf
そして、それらをでステッチしましたpdftk left.pdf right.pdf output final.pdf
。
別の方法は、トリミングボックスをメディアボックスと同じに設定することです。オフセットは-723になります。ただし、ページをシームレスに表示するには、トリミングをリセットしてトリミングする必要があります。それ以外の場合は、メディアをトリミングに設定します。