Comment fusionner / convertir plusieurs fichiers PDF en un seul grand fichier PDF?
J'ai essayé ce qui suit, mais le contenu du fichier cible n'était pas celui attendu:
convert file1.pdf file2.pdf merged.pdf
J'ai besoin d'une solution de ligne de commande (CLI) très simple / basique. Le mieux serait de pouvoir diriger directement la sortie de la fusion / conversion pdf2ps
(comme tenté à l'origine dans ma question posée ici: tuyauterie Linux (convertir -> pdf2ps -> lp) ).
linux
pdf
merge
command-line-interface
de l'alcool
la source
la source
Réponses:
Étant donné qu'il
pdfunite
fait partie de poppler, il a plus de chances d'être installé, l'utilisation est également plus simple quepdftk
:la source
pdfunite *.pdf out.pdf
supposant qu'aucun autre pdf n'existe dans ce répertoire et que leur ordre est conservé par "*". S'il n'est pas conservé, l'utilisation de plages: filename_ {0..9} .pdf le résout.Essayez le bon ghostscript:
ou même de cette façon pour une version améliorée pour les PDF basse résolution (merci à Adriano de l'avoir signalé):
Dans les deux cas, la résolution de sortie est beaucoup plus élevée et meilleure que celle-ci en utilisant convert:
De cette façon, vous n'auriez pas besoin d'installer autre chose, travaillez simplement avec ce que vous avez déjà installé dans votre système (au moins les deux viennent par défaut dans mon rhel).
J'espère que cela t'aides,
MISE À JOUR: tout d'abord merci pour tous vos gentils commentaires !! juste une astuce qui peut fonctionner pour vous les gars, après avoir googlé, j'ai trouvé une superbe astuce pour réduire la taille des PDF, j'ai réduit avec elle un PDF de 300 Mo à seulement 15 Mo avec une résolution acceptable! et tout cela avec le bon ghostscript, le voici:
à votre santé!!
la source
gs
tourne très vite et ça compresse beaucoup. Cependant, la qualité s'est beaucoup améliorée après avoir utilisé ce paramètre:-dPDFSETTINGS=/prepress
-dPDFSETTINGS=/prepress
avait le très bel effet de faire tourner des pages trop larges et de forcer les barres de défilement horizontales gênantes..bash_profile
et vous avez un joli raccourci:pdfmerge() { gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -sOutputFile=$@ ; }
cela vous évite de taper si vous devez beaucoup utiliser la commande. L'utilisation ressemble à ceci:pdfmerge merged.pdf mine1.pdf mine2.pdf
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -sOutputFile=merged.pdf mine1.pdf mine2.pdf
peut être raccourci engs -q -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -o merged.pdf mine1.pdf mine2.pdf
. De la documentation : "Comme raccourci pratique, vous pouvez utiliser l'-o
option suivie de la spécification du fichier de sortie comme expliqué ci-dessus. L'-o
option définit également les options-dBATCH
et-dNOPAUSE
. Ceci est destiné à être un moyen rapide d'invoquerghostscript
pour convertir un ou plusieurs fichiers d'entrée."Je suis désolé, j'ai réussi à trouver la réponse moi-même en utilisant Google et un peu de chance :)
Pour ceux intéressés;
J'ai installé le pdftk (boîte à outils pdf) sur notre serveur Debian, et en utilisant la commande suivante, j'ai obtenu la sortie souhaitée:
OU
Cela peut à son tour être canalisé directement dans pdf2ps.
la source
gs -q -sPAPERSIZE=letter -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=out.pdf in1.pdf in2.pdf in3.pdf ...
pdftk file1.pdf file2.pdf cat output out.pdf
affichera le fichier fusionné sous la formeout.pdf
pdftk
n'est pas disponible pour les systèmes EL7 en raison d'une dépendance manquantelibgcj
.C'est la solution la plus simple si vous avez plusieurs fichiers et que vous ne souhaitez pas saisir les noms un par un:
qpdf --empty --pages *.pdf -- out.pdf
la source
En
pdfjoin a.pdf b.pdf
créera également un nouveaub-joined.pdf
avec le contenu de a.pdf et b.pdfla source
Vous pouvez utiliser la commande convert directement,
par exemple
la source
convert -compress lossless sub1.pdf sub2.pdf sub3.pdf merged.pdf
, mais la taille du fichier résultant pourrait être beaucoup trop grande. Je suggèreconvert -compress jpeg -quality 90 sub1.pdf sub2.pdf sub3.pdf merged.pdf
plutôt.pdfunite
est bien pour fusionner des PDF entiers. Si vous voulez, par exemple, les pages 2 à 7 du fichier1.pdf et les pages 1, 3, 4 du fichier2.pdf, vous devez utiliserpdfseparate
pour diviser les fichiers en PDF séparés pour chaque page à donnerpdfunite
.À ce stade, vous voulez probablement un programme avec plus d'options.
qpdf
est le meilleur utilitaire que j'ai trouvé pour manipuler des PDF.pdftk
est plus grand et plus lent et Red Hat / Fedora ne le compile pas à cause de sa dépendance à gcj. D'autres utilitaires PDF ont des dépendances Mono ou Python. J'ai trouvéqpdf
produit un fichier de sortie beaucoup plus petit que l'utilisationpdfseparate
et l'pdfunite
assemblage de pages dans un PDF de sortie de 30 pages, 970 Ko contre 1 6450 Ko. Parce qu'elle offre beaucoup plus d'options,qpdf
la ligne de commande de n'est pas aussi simple; la demande d'origine de fusionner le fichier1 et le fichier2 peut être effectuée avecla source
pdftk
cause de sa dépendance à l'égardgcj
de laquelle le support a été supprimé, je crois. Malgré la recherche d'outils de manipulation de pdf viapacman -Ss pdf
, j'ai raté cela. Merci pour cette réponse! Je devrais recevoir beaucoup plus de votes positifs, donc cela apparaît juste à côté des suggestions pourpdfunite
oupdftk
.Apache PDFBox http://pdfbox.apache.org/
PDFMerger Cette application prendra une liste de documents pdf et les fusionnera, enregistrant le résultat dans un nouveau document.
la source
Utilisez les outils PDF de python https://pypi.python.org/pypi/pdftools/1.0.6
Téléchargez le fichier tar.gz et décompressez-le et exécutez la commande comme ci-dessous
Vous devez installer pyhton3 avant d'exécuter la commande ci-dessus
Ces outils prennent en charge les éléments ci-dessous
Vous pouvez trouver plus de détails dans le lien ci-dessous et c'est open source
https://github.com/MrLeeh/pdftools
la source
gs
(toutes les variantes répertoriées ci-dessus), une simple fusion de deux fichiers PDF, 2 Mo et 500 Ko, prenait quelques minutes et aboutissait à un fichier de 40 Mo!pdftools
se termine instantanément avec une taille de fichier identique.Vous pouvez utiliser sejda-console , gratuit et open source. Décompressez-le et exécutez
sejda-console merge -f file1.pdf file2.pdf -o merged.pdf
Il préserve les signets, les annotations de liens, les acroformes, etc. il a en fait beaucoup d'options avec
sejda-console merge -h
lesquelles vous pouvez jouer, il suffit de courir pour les voir tous.la source
Si vous souhaitez convertir toutes les images téléchargées en un seul pdf, exécutez
convert img{0..19}.jpg slides.pdf
la source
J'appuie la
pdfunite
recommandation. J'obtenais cependant desArgument list too long
erreurs alors que j'essayais de fusionner> 2k fichiers PDF.Je me suis tourné vers Python pour cela et deux packages externes: PyPDF2 (pour gérer tout ce qui est lié au PDF) et natsort (pour faire une sorte "naturelle" des noms de fichiers du répertoire). Au cas où cela pourrait aider quelqu'un:
la source
date +%s
.pdf' && pdfunite output - *. pdf output.pdf (Cela va créer des lots de 500 fichiers traités en série, faire trier les fichiers temporaires résultants dans le bon ordre , et produisez un fichier de sortie approprié; vous devrez nettoyer les fichiers temporaires après)Voici une méthode que j'utilise qui fonctionne et est facile à mettre en œuvre. Cela nécessitera les bibliothèques fpdf et fpdi qui peuvent être téléchargées ici:
la source
Je suis partisan d'être l'un des développeurs de PyMuPDF (une liaison Python de MuPDF).
Vous pouvez facilement en faire ce que vous voulez (et bien plus encore). Le code squelette fonctionne comme ceci:
C'est à peu près ça. Plusieurs options sont disponibles pour sélectionner uniquement des plages de pages, maintenir une table des matières commune, inverser la séquence des pages ou modifier la rotation des pages, etc., etc.
Nous sommes sur PyPi.
la source
J'aime l'idée de Chasmo, mais je préfère utiliser les avantages de choses comme
Donner plusieurs fichiers source
convert
conduit à les fusionner dans un pdf commun. Cette commande fusionne tous les fichiers avec.pdf
extension dans le répertoire réel dans le répertoiremerged.pdf
parent.la source
$(ls *.pdf)
à la place d'un simple caractère générique*.pdf
?ls *.pdf
caractère générique, vous perdez le contrôle de l'ordre des fichiers fusionnés. Dans un exemple, la liste suivante: 1.pdf, 2.pdf, 3.pdf, ..., 10.pdf, ..., 100.pdf sera en fait fusionnée comme 1.pdf, 10.pdf, 100. pdf, 2.pdf, 3.pdf (en raison de la manière par défaut de Linux de commander les fichiers - ici vous avez plus de détails sur ce problème - stackoverflow.com/q/22948042/1977012 ).Vous pouvez voir utiliser les pdftools gratuits et open source (avertissement: j'en suis l'auteur).
Il s'agit essentiellement d'une interface Python pour le
pdfpages
package Latex .Pour fusionner les fichiers pdf un par un, vous pouvez exécuter:
Pour fusionner tous les fichiers pdf d'un répertoire, vous pouvez exécuter:
la source
Bien qu'il ne s'agisse pas d'une solution en ligne de commande, elle peut aider les
macos
utilisateurs:la source