Comment convertir un PDF d'une page en un PDF de 2 pages par feuille?

44

Je voudrais imprimer un PDF de manière à ce que les deux premières pages se trouvent au recto de la première page, les troisième et quatrième au verso et ainsi de suite.

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

 page 1 - front             page 1 - back

Étant donné que mon imprimante utilisant Linux ne prend pas en charge l’impression recto-verso manuelle, je pensais pouvoir peut-être éditer le fichier pdf de la même manière.

Mais comment?

mokasin
la source
Je ne pense pas que cela soit possible, avez-vous seulement le pdf?
Michael K
Ceci est possible sous Linux en utilisant pstops du paquet psutils et / ou pdftk. Quel système d'exploitation utilisez-vous?
Rems le
@ Ivan Flipse: har, je pensais que c'était exactement la même chose :), votre commentaire obtient ainsi un +1.
Akira
@Ivo Flipse, @rems: vous pouvez ajouter plus d'œuvres en ASCII ici: superuser.com/questions/54054/… et superuser.com/questions/235074/… ... @mokasin: ces liens peuvent vous donner une idée de la résolution. la tâche que vous avez demandée.
Kurt Pfeifle

Réponses:

23

En plus de ce qui a été mentionné, PDFjam inclut un outil de ligne de commande, pdfnupqui le fait. (Il utilise le paquet pdfpages pour PDFLaTeX ci-dessous, que vous pouvez également utiliser.)

Si vous préférez une interface graphique, jPDFtweak est une autre option.

frabjous
la source
Parfait. Exactement ce que je cherchais.
Mokasin
1
Exemple d' utilisation: pdfnup --nup 2x1 mypdf.pdf. Cela permet d’imprimer 2 pages côte à côte par feuille sur une vue en paysage, à imprimer par dessus le bord court. Voir man pdfnuppour plus de détails.
Gabriel Staples
J'ai aussi décidé d'ajouter une réponse: comment convertir un fichier PDF de 1 pg en vue de paysage avec deux copies dupliquées sur la même page (idéal pour l'impression de circulaires): superuser.com/a/1452008/425838
Gabriel Staples
22

Utilisez pdfnup:

$ pdfnup file.pdf

Cela créera un nouveau fichier pdf exactement comme vous l'avez demandé.

Joaquin
la source
pdfnup affiche les options de ligne de commande utilisées avec pdfjam et vous permet de les modifier. (ex: si vous voulez ne pas avoir de paysage, vous pouvez supprimer l'option --landscape lorsque vous appelez pdfjam)
Trevor Boyd Smith
6
Plus exactement pdfnup --nup 2x1 --suffix test file.pdfva créer un file-test.pdfavec 2 pages en 1.
lolesque
1
sudo apt install texlive-extra-utilsinstaller ces utilitaires sur Ubuntu.
Sarke
J'ai une seule page a4 Je veux imprimer deux copies de a5 par feuille. Comment puis-je accomplir cela? Les exemples d'utilisation de 'pdfnup' ci-dessus ne dupliquent pas la première page, mais rendent plutôt la deuxième partie a5 de la première feuille a4 vierge.
Nordlöw
2

C'est une question assez vieille pour penser que les options que nous avons maintenant étaient absentes à l'époque, mais peut-être mérite-t-elle une solution actualisée.

Les visualiseurs pdf de Linux utilisent généralement les options / propriétés d’impression pour définir la mise en page. Vous pouvez ainsi imprimer plusieurs pages par feuille / face. L'idée est d'utiliser ceux-ci pour imprimer dans un fichier PDF .

Evince peut le faire, ainsi que qpdfview . Plus ici.


qpdfview

entrez la description de l'image ici

entrez la description de l'image ici


Manifester

entrez la description de l'image ici


PDF Studio Viewer

entrez la description de l'image ici

Les autres lecteurs PDF doivent avoir des options similaires.


la source
1

Des outils de ligne de commande gratuits et à code source libre sont disponibles pour convertir les fichiers PDF en feuilles de lecture, pages de brochures, etc.

J'ai perdu l'application que j'utilisais, donc aucune aide là-bas, mais suite à une recherche rapide, je vois un programme appelé pdfshuffler ( http://sourceforge.net/projects/pdfshuffler/ ) qui pourrait être ce dont vous avez besoin. A un GUI, donc pas susceptible d'être automagique, mais c'est un front-end pour un autre outil ...

horatio
la source
0

Si vous avez la fonction d'impression dans un fichier. imprimer dans le fichier avec deux pages par page et avec des pages impaires. Répétez le processus avec des pages paires. Maintenant, imprimez les impairs, inversez les papiers imprimés et imprimez le fichier de pages paires.

Amirali Sanatinia
la source
0

@mokasin: Vous n'avez pas indiqué le lecteur de PDF que vous utilisez. Si vous utilisez la version Linux d’Acrobat / Adobe Reader: il existe une option permettant d’imprimer "2 pages en haut" directement dans la boîte de dialogue Imprimer. Vous pouvez également choisir d'imprimer uniquement les pages impaires ou paires. Cette combinaison vous aidera donc à obtenir le résultat souhaité.

Kurt Pfeifle
la source
0

Ce logiciel que j'ai testé sur le système d'exploitation Solaris 11.2 peut créer ce schéma appelé 2 en 1, généralement utilisé pour la distribution en salle de classe ou lors de réunions. Il est possible de produire d'autres schémas; par exemple, distribuer avec 3 ou 4 pages ou plus sur une feuille ou sur les deux côtés d'une feuille. Il peut être exécuté à partir d'un terminal car il s'agit d'un fichier JAR ou simplement exécuter l'interface graphique pour en faciliter l'accès. Outre Solaris, d'autres distributions Linux sont également compatibles, exécutant le logiciel en tant qu '"exécutable" avec les privilèges de super-utilisateur. Soyez conscient de ne pas utiliser "Open the Archive". Il fonctionne également sur tous les Windows et Mac sur lesquels un environnement JRE (Java Runtime Environment) est déjà installé, comme c'est le cas la plupart du temps. Le logiciel s'appelle Dysprosium Imposition et peut être téléchargé et utilisé gratuitement.

N'importe qui
la source
0

Pour ceux qui souhaitent prendre un ou deux fichiers pdf et le transformer en fichier PDF avec 2 copies de ce document côte à côte en mode paysage ( idéal pour imprimer des prospectus ), faites ce qui suit:

  1. Transformez l’entrée pdf 1 ou 2 pg en une sortie contenant une copie de ces pages (1 pg pdf -> 2 pg pdf, 2 pg pdf -> 4 pg pdf, etc.):

    pdfunite in.pdf in.pdf out.pdf
    
  2. Combinez ce pdf dupliqué en un pdf de 2 pages par côté dans la vue du paysage, pour imprimer des prospectus par exemple:

    pdfnup out.pdf
    

Ou tout sur une seule ligne:

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

Notez que out.pdfc'est l' entrée à pdfnup. Le fichier de sortie résultant de pdfnups'appellera " out-nup.pdf ".

Regardez aussi le résultat de la pdfnupcommande et vous verrez la forme détaillée de la commande en cours d'exécution, ce qui vous donne un aperçu des options que vous pouvez y passer. Apparemment pdfnuputilise pdfjamsous le capot:

pdfjam: Appel efficace pour cette série de pdfjam:

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

Exemple:

PDF original (1 page normale en mode Portrait), " in.pdf ": entrez la description de l'image ici

PDF final (2 pages côte à côte dans la vue Paysage), " out-nup.pdf ":
- peut maintenant être coupé en deux au centre pour être distribué en flyers entrez la description de l'image ici

Fonction Bash simple: make_flyer

Copiez et collez cette fonction bash au bas de votre fichier "~ / .bashrc" afin d’avoir accès à une commande simple et conviviale 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\""'

Exemple d'utilisation:

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

Voir les informations d'aide:

make_flyer_help

Sortie:

$ 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"

Références:

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

En relation:

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

Références Bash:

  1. Bash Comment passer des arguments dans une fonction bash: https://bash.cyberciti.biz/guide/Pass_arguments_into_a_function
  2. Chaînes de concaténation Bash: https://linuxize.com/post/bash-concatenate-strings/
  3. Bash exécute une cmd stockée sous forme de chaîne! https://stackoverflow.com/questions/2005192/how-to-execute-a-bash-command-stored-as-a-string-with-quotes-and-asterisk
  4. Bash itérer sur toutes les entrées dans un cmd: https://stackoverflow.com/questions/255898/how-to-iterate-over-arguments-in-a-bash-script/255913#255913
  5. Paramètres de passage Bash à la fonction: https://stackoverflow.com/questions/6212219/passing-parameters-to-a-bash-function/6212408#6212408
  6. Comment convertir un fichier PDF de 1 pg en flyer [mes propres ans!]: Comment convertir un fichier PDF d'une page en un fichier PDF de 2 pages par feuille?
Gabriel Staples
la source