web-dev-qa-db-fra.com

Comment puis-je dupliquer les pages dans PDF fichiers automatiquement?

J'ai beaucoup de PDF fichiers avec 1 à 4 pages chacun. J'ai besoin d'une solution qui génère automatiquement un nouveau fichier pour chacun de ces fichiers. Les nouveaux fichiers doivent contenir le contenu des fichiers d'origine. deux fois (c.-à-d. pages 1 jusqu'au bout, suivis des mêmes pages dans le même ordre).

Comment puis-je accomplir cela?

10
Marc

Solution pour Windows utilisant PDFTK (que vous semblez utiliser selon vos balises):

Cela aboutira à un PDF avec les pages 1-fin suivi de 1 extrémité à nouveau:

pdftk in.pdf cat 1-end 1-end output out.pdf

Si vous souhaitez que chaque page soit dupliquée ensemble (comme dans 1,1,2,2, ...), utilisez le fichier de commandes suivant:

@echo off
set pages=
setlocal enabledelayedexpansion
for /f "tokens=2" %%a in ('pdftk in.pdf dump_data ^| find /i "NumberOfPages"') do for /l %%b in (1,1,%%a) do set pages=!pages! %%b %%b
pdftk in.pdf cat!pages! output out.pdf
15
Karan

Je pourrais vous donner une meilleure solution si vous répondez aux questions de mon commentaire, mais pour le bien de votre femme, voici quelques suggestions.

ImageMagick est un outil de ligne de commande croisé pour la manipulation d'image. Une fois que vous l'installez, vous devriez pouvoir utiliser son outil convert pour faire ce que vous voulez. Les détails dépendent de votre système d'exploitation. Je suppose que vous voulez deux copies de l'ensemble du fichier, pas chaque page doublée.

  1. Linux/OSX/UNIX, etc.

    for n in *pdf; do convert -density 150 "$n" "$n" "$n"; done
    

    Ceci écrasera les fichiers existants , vous voudrez peut-être sauvegarder d'abord.

  2. Les fenêtres. Cela pourrait bien être légèrement faux, je n'utilise pas Windows, donc je ne peux pas le tester, mais l'idée générale devrait être quelque chose comme ça

    for %f in (*.pdf) do (convert.exe %f %f %f)
    
2
terdon

Si vous souhaitez que chaque page soit dupliquée ensemble (comme dans 1,1,2,2, ...) sur Linux, ce script le fera:

#!/bin/bash
INPUTFILE=$*
PAGENUM=`pdftk ${INPUTFILE} dump_data | grep NumberOfPages | cut -d : -f 2  | cut -d " " -f 2`
PAGES=`seq 1 ${PAGENUM}`
DUPAGES=`for i in ${PAGES} ; do echo $i $i | tr "\n" " " ; done`
OUTPUT=`basename ${INPUTFILE} .pdf`.dup.pdf
pdftk ${INPUTFILE} cat ${DUPAGES} output ${OUTPUT}
2
Seegras

Si vous n'avez pas d'installation PDFTK, mais que vous utilisez la touche POPPLER, puis utilisez cette commande:

for f in *
do
    pdfjoin $f $f
done

Ceci est particulièrement pertinent sur Fedora 21, où PDFTK n'est plus disponible dans le référentiel.

0
Constantin

Utilisation simple pdfunite. Cela peut probablement être encore simplifié avec plus de connaissances de script.

Sachez que le (dernier argument est le fichier résultant. Si vous oubliez que ce fichier sera écrasé.

pdfunite 1.pdf 2.pdf 3.pdf 4.pdf result.pdf
pdfunite result.pdf result.pdf result.pdf 3-times-result.pdf
0
keiki