PDFをページごとに2面に変換する


11

1ページあたり2辺のPDFを1ページあたり1辺に変換するにはどうすればよいですか?


これは絶対にクレイジーです!PDFのページ設定を、両面ではなく片面に変更する方法はありませんか?
ネイサンフェルマン

@ネイサン・フェルマン:クレイジー、はい。しかし、クレイジーなものは時々あなたにほとんどの楽しみを与えます
;


@SkippyleGrandGourou私はその質問がどのように関係しているかわかりません。ページで2つの異なることをしようとしている質問ではありませんか?
ベンN

@BenN:どちらの質問も、「既存の単一ページから2つの新しいページを作成する」方法を尋ね、もう一方を引用します。最も投票された答えはほとんどコピーパスタです。
スキッピールグラングロウ

回答:


23

OK、Acrobat(Readerではなくフルバージョン)の助けを借りて、問題はすでに解決されています。しかし、Acrobatにアクセスできない場合はどうすればよいでしょうか?これはGhostscriptとpdftkでも実行できますか?

Ghostscriptを使用してこれを解決する方法...

...そしてその楽しみのために、「ダブルアップ」ページではなく「トレブルアップ」で入力ファイルを使用しましょう。実際、私は今日、そのようなPDFをメールで受け取りました。それは、レポレロのスキームで折り畳まれたチラシでした。シートサイズはA4ランドスケープ(842pt x 595pt)で、次のように折りたたまれて配置されました。

Front side to be printed, page 1 of PDF
+--------+--------+--------+   ^
|        |        |        |   |
|   5    |   6    |   1    |   |
|        |        |        | 595 pt
|        |        |        |   |
|        |        |        |   |
|        |        |        |   |
+--------+--------+--------+   v
         ^        ^
        fold     fold
         v        v
+--------+--------+--------+   ^
|        |        |        |   |
|   2    |   3    |   4    |   |
|        |        |        | 595 pt
|        |        |        |   |
|        |        |        |   |
|        |        |        |   |
+--------+--------+--------+   v
Back side to be printed, page 2 of PDF
<---------- 842 pt -------->

6ページのPDFを1つ作成します。各ページのサイズは280.67pt x 595 ptです。

最初の一歩

最初に、各入力ページから左側のセクションを抽出しましょう。

gswin32c.exe ^
    -o left-sections.pdf ^
    -sDEVICE=pdfwrite ^
    -g2807x5950 ^
    -c "<</PageOffset [0 0]>> setpagedevice" ^
    -f myflyer.pdf

これらのパラメーターは何をしましたか?

  • -o ...............:出力ファイルに名前を付けます。暗黙的にも使用し-dBATCH -dNOPAUSE -dSAFERます。
  • -sDEVICE=pdfwrite : 出力形式としてPDFが必要です。
  • -g................:出力メディアのサイズをピクセル単位で設定します。pdfwriteのデフォルトの解像度は720 dpiです。したがって、PageOffsetに一致するように10を掛けます。
  • -c "..............:Ghostscriptに、指定されたPostScriptコードスニペットをメイン入力ファイルの直前に処理するように要求します(これはに従う必要があります-f)。
  • <</PageOffset ....:メディア上のページ画像のシフトを設定します。(もちろん、左ページの場合、シフトby [0 0]は実際の効果はありません。)
  • -f ...............: この入力ファイルを処理します。

最後のコマンドはどの結果を達成しましたか?

これです:

Output file: left-sections.pdf, page 1
+--------+  ^
|        |  |
|   5    |  |
|        |595 pt
|        |  |
|        |  |
|        |  |
+--------+  v

Output file: left-sections.pdf, page 2
+--------+  ^
|        |  |
|   2    |  |
|        |595 pt
|        |  |
|        |  |
|        |  |
+--------+  v
< 280 pt >

第二段階

次に、中央のセクションに対して同様のことを行います。

gswin32c.exe ^
    -o center-sections.pdf ^
    -sDEVICE=pdfwrite ^
    -g2807x5950 ^
    -c "<</PageOffset [280.67 0]>> setpagedevice" ^
    -f myflyer.pdf

結果:

Output file: center-sections.pdf, page 1
+--------+  ^
|        |  |
|   6    |  |
|        |595 pt
|        |  |
|        |  |
|        |  |
+--------+  v

Output file: center-sections.pdf, page 2
+--------+  ^
|        |  |
|   3    |  |
|        |595 pt
|        |  |
|        |  |
|        |  |
+--------+  v
< 280 pt >

第三段階

最後に、適切なセクション:

gswin32c.exe ^
    -o right-sections.pdf ^
    -sDEVICE=pdfwrite ^
    -g2807x5950 ^
    -c "<</PageOffset [561.34 0]>> setpagedevice" ^
    -f myflyer.pdf

結果:

Output file: right-sections.pdf, page 1
+--------+  ^
|        |  |
|   1    |  |
|        |595 pt
|        |  |
|        |  |
|        |  |
+--------+  v

Output file: right-sections.pdf, page 2
+--------+  ^
|        |  |
|   4    |  |
|        |595 pt
|        |  |
|        |  |
|        |  |
+--------+  v
< 280 pt >

最後のステップ

次に、ページを1つのファイルに結合します。

pdftk.exe ^
  A=right-sections.pdf ^
  B=center-sections.pdf ^
  C=left-sections.pdf ^
  cat A1 B2 C2 A2 B1 C1 ^
  output single-files-input.pdf
  verbose

できた これが望ましい結果です。サイズが280.67x595の6つの異なるページ。

結果:

+--------+  +--------+  +--------+  +--------+  +--------+  +--------+   ^
|        |  |        |  |        |  |        |  |        |  |        |   |
|   1    |  |   2    |  |   3    |  |   4    |  |   5    |  |   6    |   |
|        |  |        |  |        |  |        |  |        |  |        | 595 pt
|        |  |        |  |        |  |        |  |        |  |        |   |
|        |  |        |  |        |  |        |  |        |  |        |   |
|        |  |        |  |        |  |        |  |        |  |        |   |
+--------+  +--------+  +--------+  +--------+  +--------+  +--------+   v
< 280 pt >  < 280 pt >  < 280 pt >  < 280 pt >  < 280 pt >  < 280 pt > 

1
神聖ながらくた、ここに素晴らしいアート!
イヴォFlipse

これはうまく機能しましたが、他のセクションを取得するには、PageOffsetを負の数に設定する必要がありました。
ジョンチャン

Pythonを大きなPDFに使用できます。f = open("order.dat","w") for i in [a+1 for a in xrange(63)]: f.write("A{0} B{0} ".format(i)) f.close()これにより、「A1 B1 A2 B2 ... A63 B63」のファイルorder.datが作成されます。その後、それをにコピーして貼り付けることができますpdftk
-Suuuehgi

3

@peims、ありがとう。メソッドの段階的なバージョンは次のとおりです。Kindle DX用に変換したいファイルで試してみましたが、完全に機能します。

  • Acrobat v9のフルバージョンを使用してページの左側をトリミングし、「left.pdf」として保存します。
    • トリミングツールを使用して、ページの左側をマークします。
    • 右クリックして、「Set Cropbox」を選択します。
    • 「Document..Crop Pages」を選択し、ドキュメント全体にトリミングを適用します。
  • 右側のページで繰り返し、「right.pdf」として保存します。
  • この段階では、左ページの「left.pdf」と右ページの「right.pdf」の2つのドキュメントがあります。

次に、pdftk.exe(http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/から)を使用して、結果を単一のファイルにインターリーブします。「pdftk.exe」、「left.pdf」、および「right.pdf」を「D:\」にコピーして実行します。

  • D:> pdftk D:\ left.pdfバースト出力%05d_A.pdf
  • D:> pdftk D:\ right.pdfバースト出力%05d_B.pdf
  • D:> pdftk * _ ?. pdf cat出力combined.pdf

注:ファイルを「C:\」にコピーすると、セキュリティ権限が原因でWin 7では機能しません。D:\がない場合は、ディレクトリ「C:\ x」を作成して操作を完了します。

通常、これらの結果は十分に良好です。ただし、出力を改善するには、さらに2つのオプションの手順があります。

  • (オプションの最後のステップ1)この段階では、ドキュメントは巨大です(私のドキュメントは7MBから80MBに拡大されています)。したがって、次のいずれかを使用してファイルサイズを縮小できます。
    • 「Advanced..PDF Optimizer」、または:
    • 「Acrobat 5と互換性がある」設定の「Advanced..Preflight」。
  • (オプションの最終ステップ2)ページはすべて異なるサイズです。すべてのページでトリミングを繰り返し、すべてが均一のサイズになるようにします。

3

ちょうど同じ問題がありました。pdfページを分離して切り取るためのオープンソースのJava GUIツールであるbrissを見つけました。

http://sourceforge.net/projects/briss/

Linuxでは、ユーザーインターフェースが完全に簡単ではない場合でも、非常にうまく機能しました。いくつかの異なるサイズのページを含むPDFでも機能しました!


2

ドキュメントを複製し、ページをトリミングして、1つのファイルに偶数ページ番号のみが表示され、他のファイルには奇数ページ番号のみが表示されるようにすることができます。次に、ファイルを単一のページに分割し、再結合して、ページの片面に1つのドキュメントを作成します...

これは、次のようないくつかの方法を使用して実行できます。

  1. Adobe Acrobatのトリミングツールを使用して、二重ページの片側をトリミングし、すべてのページにトリミングを適用します。
  2. pdftoolkitの「burst」コマンドを使用して、ファイルを個々のページに分割します
  3. ファイル名変更ツール(ReNamerなど)を使用して、ファイルの名前を順番に変更します
  4. pdftoolkitの「cat」コマンドを使用してページを再結合します

2

次のスクリプトを使用して、スキャンされた書籍をMacおよびLinuxで処理します。これは非常に多くのメモリを消費します。

#!/bin/bash
#
# This script processes scanned books. After scanning the books have been cropped with
# Preview. This does kind of a "soft crop" that we need to make a bit "harder". 
#
# The second step is to take each page of the PDF and split this into two two pages, 
# because each page of the scanned document actually contains two pages of the book.
#
#

FILE=`mktemp`.pdf
FILE2=`mktemp`.pdf
FILE3=`mktemp`.pdf

echo "Making a temporary copy of the input file."

cp $1 $FILE

#
# Start cropping
#

echo "Cropping the PDF"

# The first regex removes all boxes but CropBox. The second regex renames the  CropBox as MediaBox

perl -pi.bak -e 's/\/(Media|Bleed|Art|Trim)Box[\n\l\f\s]*\[(.+?)\]//msg;' $FILE
perl -pi.bak -e 's/CropBox/MediaBox/g;' $FILE

echo "Validating the PDF"

#Run PDFTK to ensure that the file is OK

cat $FILE | pdftk - output $FILE2

#
# Done cropping, start splitting the pages
#

echo "Splitting the pages in two and changing to 200 dpi with imagemagick. Output goes to $FILE3"

convert -density 200  $FILE2 -crop 50%x0 +repage $FILE3

#
# Done spliting, copy the result in a new file
#


mv $FILE3 $1.pages.pdf

1

素晴らしいリファレンスをありがとう。私は同様の問題に直面していましたが、私のために働いたものを共有したかったです。

左側のみに縦向きのテキストを含む横向きのタブロイドPDFがありました。本質的に2ページのタブロイド紙には、ページの右側にコンテンツがありません。同様の開始点ですが、タブロイドは792×1224(縦)、1124 x 792(横)であり、必要な1/2タブロイドのポイント定義は612 x 792ポイントでした。

"C:\Program Files\gs\gs9.10\bin\gswin64c.exe" -o left2.pdf -sDEVICE=pdfwrite -g6120x7920 -c "<</PageOffset [0 0]>> setpagedevice" -f "RFP.pdf"

必要なコンテンツを8.5 x 11のポートレートに入れて、もっと読みやすくしました。


0

私が理解しているのは、2つのページ(1枚のシートに並べて表示)を表示するPDFファイルを1シートあたり1ページに変換する必要があるため、2枚のPDFファイルになるということです。つまり、15枚のシートに合計30ページがある場合、PDFファイルを、それぞれが1ページを表示する30枚のPDFファイルに変換する必要があります。この場合、問題は1〜30のページ番号を指定してAdobe acrobat XI PROの「ページ抽出ツール」を使用したことです。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.