1ページのPDFをシートごとの2ページのPDFに変換する方法


44

PDFを印刷して、最初のページの前面が最初の2ページ、背面が3番目と4番目などになるようにします。

-----------------          -----------------
|       |       |          |       |       |
|       |       |          |       |       |
|   1   |   2   |          |   3   |   4   |    . . .
|       |       |          |       |       |
|_______|_______|          |_______|_______|

 page 1 - front             page 1 - back

Linuxを使用しているプリンターは、私が考えていた手動の両面印刷をサポートしていないため、PDFを適切な方法で編集できる可能性があります。

しかし、どのように?


私はこれが可能だとは思わない、あなたはpdfしか持っていませんか?
マイケルK

これは、psutilsパッケージまたはpdftkからpstopsを使用してLinux上で可能です。どのオペレーティングシステムを実行していますか?
11

@Ivo Flipse:har、私はまったく同じだと思ったので:)、あなたのコメントも+1されます。
アキラ

@Ivo Flipse、@ rems:ここで、より多くのASCIIアートに投票できます:superuser.com/questions/54054/…およびsuperuser.com/questions/235074/… ... @mokasin:これらのリンクは、解決方法のアイデアを提供します。要求したタスク。
カートフェイフル

回答:


23

言及されたことに加えて、PDFjamにはこれを行うコマンドラインツールが含まれpdfnupています。(下にあるPDFLaTeXのpdfpagesパッケージを使用しますが、これも使用できます。)

GUIを好む場合は、jPDFtweakも別のオプションです。


パーフェクト。まさに私が探していたもの。
mokasin

1
使用例:pdfnup --nup 2x1 mypdf.pdf。これにより、ランドスケープビューでシートごとに2ページが並べて印刷され、短辺で裏返されて印刷されます。詳細man pdfnupを参照してください。
ガブリエルステープルズ

私も答えを追加することにしました:1ページの1 pdfを同じページに複製された2つのコピーを含むランドスケープビューに変換する方法(チラシの印刷に最適):superuser.com/a/1452008/425838
Gabrielステープルズ

24

pdfnupを使用します。

$ pdfnup file.pdf

これにより、要求どおりに新しいPDFファイルが作成されます。


pdfnupはpdfjamで使用されるコマンドラインオプションを示しているため、そこから微調整できます。(例:あなたは風景を持っていないしたい場合はpdfjamを呼び出すときに--landscapeオプションを削除することができます)
トレバー・ボイド・スミス

6
より正確にpdfnup --nup 2x1 --suffix test file.pdffile-test.pdf、1に2ページのを作成します
。– lolesque

1
sudo apt install texlive-extra-utilsこれらのユーティリティをUbuntuにインストールします。
サルケ

単一のページa4があり、シートごとにa5を2部印刷したい。どうすればこれを達成できますか?上記の「pdfnup」の使用例は、最初のページを複製するのではなく、最初のa4シートの2番目のa5部分を空白にします。
Nordlöw

2

これは、私たちが現在持っていたオプションが当時存在しなかったと考えるのに十分に古い質問ですが、おそらくそれは最新の解決策に値するでしょう。

Linuxのpdfビューアは通常、印刷オプション/プロパティを使用してページレイアウトを設定します。そこで、シート/面ごとに複数のページを印刷できます。アイデアは、それらを使用してPDFとしてファイル印刷することです

Evinceでもできます。qpdfviewもできます。詳細はこちら。


qpdfview

ここに画像の説明を入力してください

ここに画像の説明を入力してください


エビンス

ここに画像の説明を入力してください


PDF Studio Viewer

ここに画像の説明を入力してください

他のpdfビューアーにも同様のオプションが必要です。


1

PDFを読者の見開き、小冊子の見開きなどに変換するためのフリーウェアとオープンソースのコマンドラインツールがあります。

私は使用していたアプリを失ったので、そこに助けはありませんが、クイック検索から、pdfshuffler(http://sourceforge.net/projects/pdfshuffler/)と呼ばれるプログラムが見つかります。GUIを持っているので、自動魔法ではないかもしれませんが、別のツールのフロントエンドです...


0

ファイルへの印刷機能がある場合。ページごとに2ページの設定で、奇数ページでファイルに印刷します。偶数ページでプロセスを繰り返します。次に、奇数ページを印刷し、印刷した用紙を裏返し、偶数ページのファイルを印刷します。


0

@mokasin:使用しているPDFリーダーは言わなかった。Linux / Acrobat / Adob​​e Readerを使用している場合:印刷ダイアログで「2-up」を直接印刷するオプションがあります。奇数ページまたは偶数ページのみを印刷するように選択することもできます。これを組み合わせることにより、目的の出力を実現できます。


0

Solaris 11.2オペレーティングシステムでテストしたこのソフトウェアは、2-upと呼ばれるスキームを作成でき、通常は教室や会議での配布に使用されます。他のスキームを作成することもできます。たとえば、1枚の用紙または用紙の両面に3ページまたは4ページ以上の資料を配布します。JARファイルであるため、ターミナルから実行することも、アクセスしやすいようにGUIを実行することもできます。Solarisの他に、他のLinuxディストリビューションも互換性があり、スーパーユーザー特権で「実行可能」としてソフトウェアを実行します。「アーカイブを開く」を使用しないでください。また、ほとんどの場合、すでにJava Runtime Environment(JRE)がインストールされているWindowsおよびMacでも動作します。ソフトウェアはジスプロシウムインポジションであり、無料でダウンロードして使用できます。


0

1または2 pgのpdfを取り、それを横向き表示で2コピーのPDF(チラシの印刷に最適)に変換する場合は、次のようにします。

  1. 1または2 pg pdfの入力を、それらのページの複製コピーを含む出力に変換します(1-pg pdf-> 2-pg pdf、2-pg pdf-> 4-pg pdfなど):

    pdfunite in.pdf in.pdf out.pdf
    
  2. たとえば、チラシを印刷するために、その複製されたコピーのpdfを2ページの横長の横向きビューのpdfに結合します。

    pdfnup out.pdf
    

またはすべてを1行で:

pdfunite in.pdf in.pdf out.pdf && pdfnup out.pdf

out.pdfはへの入力であることに注意してくださいpdfnup。結果の出力ファイルはpdfnupout-nup.pdf」と呼ばれます。

また、pdfnupコマンドの出力を見ると、実際に実行されているコマンドの詳細形式が表示されます。これにより、渡すことができるオプションについての洞察が得られます。どうやらフードの下でpdfnup使用pdfjamしています:

pdfjam:pdfjamのこの実行の効果的な呼び出し:

/usr/bin/pdfjam --suffix nup --nup '2x1' --landscape -- out.pdf -

例:

元のPDF(表示で1つの通常のpg)、「in.pdf」: ここに画像の説明を入力してください

最終PDF(ランドスケープビューで2 pgの横並び)、「out-nup.pdf」:
-中央を半分にカットして、チラシとして配ることができるようになりました ここに画像の説明を入力してください

シンプルなバッシュ関数: make_flyer

シンプルで使いやすいコマンドにアクセスするには、このbash関数をコピーして「〜/ .bashrc」ファイルの最後に貼り付けますmake flyer

# Description: outputs a landscape-oriented flyer pdf ("my/pdf/input--flyer.pdf") for each 1 or more pg input pdf ("my/pdf/input.pdf")
#   - 1-pg input PDFs are converted to a 1-sided landscape, printable flyer that you cut down the center to make 
#     2 flyers
#   - 2-pg input PDFs are converted to a 2-sided landscape, printable flyer (flip on short edge when printing 
#     double-sided), and also cut down the middle to make 2 flyers
#   - **3+ pg input PDFs**: using `pdfnup` directly in this case would make more sense, since this function will
#     otherwise unneccessarily create 2 copies
#   - 3 and 4-pg input PDFs are converted to a single piece of paper, double-sided, flipped on short edge, x 2 copies. 
#     No cutting is necessary
#   - 5+ pg input PDFs simply require half as much paper to print is all since you get 2 pages per side of paper;
#     they do NOT print like booklets, but rather just as a landscape-printed, flipped-on-short-edge bundle of pages
#     (like a deck of slides). You get *2 copies* per print though, so just print half the pages. 
make_flyer() {
    num_args=$# # see: https://stackoverflow.com/questions/4423306/how-do-i-find-the-number-of-arguments-passed-to-a-bash-script/4423321#4423321
    suffix="flyer"

    loop_cnt=0
    for inputpdf in "$@"
    do
        ((loop_cnt++))
        echo "==== CONVERTING PDF $loop_cnt OF $num_args ===="
        echo "     INPUT:  \"$inputpdf\""

        # Strip off the .pdf extension from the input path, while retaining the rest of the path
        # - See: https://stackoverflow.com/questions/12152626/how-can-i-remove-the-extension-of-a-filename-in-a-shell-script/32584935#32584935
        input_path_base="$(echo "$inputpdf" | rev | cut -f 2- -d '.' | rev)"
        input_file_base="$(basename "$inputpdf" .pdf)"
        temp_pdf="${input_path_base}-.pdf" # is "input_path_base-.pdf"

        echo "     OUTPUT: \"$(pwd)/${input_file_base}--${suffix}.pdf\""

        # Convert a single 1-pg pdf into a temporary 2-pg pdf
        pdfunite "$inputpdf" "$inputpdf" "$temp_pdf"

        # Lay out the temporary 2-pg pdf into a side-by-side 1-sided flyer to print; creates "input_path_base--flyer.pdf"
        # Note that `pdfnup` places the output from this operation in the location from where you call this script
        # (ie: in your `pwd` [Present Working Directory])!--NOT the location where temp_pdf is located!
        pdfnup "$temp_pdf" --suffix $suffix

        # Delete the temporary 2-pg pdf, called "input_path_base-.pdf", thereby leaving only the original 
        # "input_path_base.pdf" and the new "input_path_base--flyer.pdf"
        rm "$temp_pdf"
    done
}
alias make_flyer_help='echo -e "Ex usage: make_flyer \"path/to/inputpdf.pdf\" - Creates a landscape-side-by-side flyer version called \"inputpdf--flyer.pdf\"\n          *in your pwd* from a 1 or 2 pg input pdf called \"path/to/inputpdf.pdf\". Accepts multiple arguments. Ex:\n          make_flyer \"path/to/inputpdf1.pdf\" \"path/to/inputpdf2.pdf\""'

使用例:

make_flyer "path/to/inputpdf1.pdf" "path/to/inputpdf2.pdf"

ヘルプ情報を参照してください:

make_flyer_help

出力:

$ make_flyer_help   
Ex usage: make_flyer "path/to/inputpdf.pdf" - Creates a landscape-side-by-side flyer version called "inputpdf--flyer.pdf"  
          *in your pwd* from a 1 or 2 pg input pdf called "path/to/inputpdf.pdf". Accepts multiple arguments. Ex:  
          make_flyer "path/to/inputpdf1.pdf" "path/to/inputpdf2.pdf"

参照:

  1. https://superuser.com/a/948095/425838
  2. https://stackoverflow.com/a/11280219/4561887

関連する:

  1. https://askubuntu.com/questions/214538/printing-in-booklet-format/1095789#1095789

Bash参照:

  1. Bash bash関数に引数を渡す方法:https : //bash.cyberciti.biz/guide/Pass_arguments_into_a_function
  2. Bash連結文字列:https : //linuxize.com/post/bash-concatenate-strings/
  3. Bashは文字列として保存されたcmdを実行します!https://stackoverflow.com/questions/2005192/how-to-execute-a-bash-command-stored-as-a-string-with-quotes-and-asterisk
  4. Bashはcmdへのすべての入力を繰り返し処理します:https : //stackoverflow.com/questions/255898/how-to-iterate-over-arguments-in-a-bash-script/255913#255913
  5. 関数にパラメーターを渡すbash:https : //stackoverflow.com/questions/6212219/passing-parameters-to-a-bash-function/6212408#6212408
  6. 1 pg pdfをチラシに変換する方法 [自分のans!]:1ページPDFを1シートPDFに2ページに変換する方法は?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.