Convertir PDF 2 côtés par page à 1 côté par page

Comment puis-je convertir un PDF avec 2 côtés par page à 1 côté par page?

    OK, le problème a déjà été résolu avec l'aide d'Acrobat (version complète, pas Reader). Mais que faire si vous n'avez pas accès à Acrobat? Cela pourrait-il se faire avec Ghostscript et pdftk?

    Comment résoudre ceci avec l'aide de Ghostscript …

    … et pour le plaisir, n'utilisons pas un fichier d'entrée avec des pages "double-up", mais une avec "treble-up". En fait, j'ai reçu un tel PDF aujourd'hui par courrier électronique. C'était un dépliant, plié dans le schéma de Leporello . La taille de la feuille était A4 paysage (842pt x 595pt), et il a été plié et réglé comme ceci:

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

    Je veux créer 1 fichier PDF avec 6 pages, chacune ayant une taille inhabituelle de 280.67pt x 595 pt.

    Premier pas

    Sortons d'abord les sections de gauche de chacune des pages d'entrée:

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

    Qu'est-ce que ces paramètres ont fait?

    • -o ...............: Fichier de sortie des noms. Implicitement utilise également -dBATCH -dNOPAUSE -dSAFER .
    • -sDEVICE=pdfwrite : nous voulons le format PDF comme format de sortie.
    • -g................: définit le format de sortie en pixels. La résolution par défaut de pdfwrite est de 720 ppp. Par conséquent, multipliez par 10 pour obtenir une correspondance pour PageOffset.
    • -c "..............: demande à Ghostscript de traiter l'extrait de code PostScript donné juste avant le fichier d'entrée principal (qui doit suivre avec -f ).
    • <</PageOffset ....: définit le déplacement de l'image de la page sur le support. (Bien sûr, pour les pages de gauche, le décalage de [0 0] n'a aucun effet réel.)
    • -f ...............: traiter ce fichier d'entrée.

    Quel résultat a obtenu la dernière commande?

    Celui-là:

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

    Deuxième étape

    Maintenant, faisons ce qui est analogue pour les sections centrales:

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

    Résultat:

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

    Troisième étape

    Enfin, les sections de droite:

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

    Résultat:

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

    Dernière étape

    Maintenant, nous combinons les pages en un seul fichier:

     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 

    Terminé. Voici le résultat souhaité. 6 pages différentes, taille 280.67×595.

    Résultat:

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

    @peims, merci. Voici la version étape par étape de votre méthode. Je l'ai essayé sur un fichier que je voulais convertir pour mon Kindle DX, et ça fonctionne parfaitement:

    • Utilisez la version complète d'Acrobat v9 pour recadrer le côté gauche de la page et enregistrez-la comme "left.pdf":
      • Utilisez l'outil de récolte pour marquer le côté gauche de la page.
      • Cliquez avec le bouton droit de la souris et sélectionnez "Set Cropbox".
      • Sélectionnez "Document..Crop Pages", et appliquez la récolte à l'ensemble du document.
    • Répétez avec les pages de droite, enregistrez en tant que "right.pdf".
    • À ce stade, vous avez deux documents: "left.pdf" avec les pages de gauche, et "right.pdf" avec les pages de droite.

    Ensuite, utilisez pdftk.exe (à partir de http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/ ) pour entrelacer les résultats en un seul fichier. Copiez "pdftk.exe", "left.pdf" et "right.pdf" vers "D: \", et exécutez:

    • D:> pdftk D: \ left.pdf sortie éclatée% 05d_A.pdf
    • D:> pdftk D: \ right.pdf sortie d'éclatement% 05d_B.pdf
    • D:> pdftk * _ ?. pdf cat output combined.pdf

    Remarque: si vous copiez les fichiers sur "C: \", cela ne fonctionnera pas sous Win 7 en raison des autorisations de sécurité. Si vous n'avez pas de D: \, créez un répertoire "C: \ x" pour terminer l'opération.

    Ces résultats seraient normalement suffisants. Cependant, il existe deux autres étapes facultatives pour améliorer la sortie.

    • (Étape finale facultative 1) À ce stade, le document est énorme (mon document a monté de 7 Mo à 80 Mo), afin de réduire la taille du fichier en utilisant soit:
      • "Advanced..PDF Optimizer", ou:
      • "Advanced..Preflight" avec le paramètre "Compatible with Acrobat 5".
    • (Étape finale facultative 2) Les pages sont toutes de différentes tailles. Répétez la récolte sur toutes les pages, donc tout est une taille uniforme.

    J'avais le même problème. Je suis tombé sur briss, un outil GUI java open source pour séparer et recadrer les pages pdf:

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

    Cela m'a très bien fonctionné sur Linux, même si l'interface utilisateur n'est pas totalement trivial. Il a même travaillé avec un pdf avec des pages de taille différente!

    Vous pouvez dupliquer le document, puis recadrer les pages de sorte que seuls les numéros de page uniformes s'affichent dans un seul fichier et seuls les numéros de page impairs dans l'autre. Ensuite, divisez les fichiers en pages uniques et se recombine pour créer un document avec des côtés individuels sur une page …

    Vous pouvez le faire en utilisant plusieurs méthodes, par exemple:

    1. Utilisez l'outil Adobe Acrobat pour recadrer un côté de la double page et appliquez la récolte à toutes les pages.
    2. Divisez les fichiers sur des pages individuelles à l'aide de la commande 'burst' dans pdftoolkit
    3. Renommez les fichiers séquentiellement à l'aide d'un outil de renommage de fichier (ex. ReNamer )
    4. Recombine les pages en utilisant la commande 'chat' dans pdftoolkit

    J'utilise le script suivant pour traiter les livres numérisés sur Mac et Linux. Cela peut nécessiter beaucoup de mémoire.

     #!/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 

    Merci d'avoir fait une excellente référence. J'étais dans un problème similaire, mais je voulais partager ce qui a fonctionné pour moi.

    J'ai eu un pdf orienté vers le paysage pdf avec un texte orienté vers le portrait uniquement sur le côté gauche. Essentiellement 2-up tabloid manquant de tout contenu sur le côté droit de la page. Point de départ similaire, mais le tabloïd est de 792 × 1224 (Portrait), 1124 x 792 (Paysage) et la définition de point pour le demi-tabloïd dont j'ai besoin était de 612 x 792 points.

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

    J'ai eu le contenu dont j'avais besoin dans le portrait 8.5 x 11, beaucoup plus lisible.

    Ce que je comprends, c'est qu'un fichier PDF montrant deux pages (côte à côte sur une feuille) doit être converti en une page par feuille, ce qui donne deux feuilles de fichier PDF. En d'autres termes, s'il y a un total de trente pages sur 15 feuilles, nous devons convertir le fichier PDF en un fichier PDF de trente feuilles, chacune montrant une page. Si c'est le problème, j'ai utilisé Adobe Acrobat XI PRO "extraire l'outil de page" en spécifiant les numéros de page de 1 à 30