J'ai un fichier pdf numérisé qui a numérisé deux pages sur une page virtuelle (page en fichier pdf).
La résolution est de bonne qualité. Le problème est que je dois zoomer lors de la lecture et faire glisser de gauche à droite.
Y at - il une commande ( convert
, pdftk
, ...) ou d'un script qui peut convertir ce fichier pdf avec des pages normales (une page de livre = une page dans le fichier pdf)?
pdfnup
, à partir de lapdfjam
suite.Réponses:
Voici un petit script Python utilisant la bibliothèque PyPdf qui fait le travail proprement. Enregistrez-le dans un script appelé
un2up
(ou ce que vous voulez), rendez-le exécutable (chmod +x un2up
) et exécutez-le en tant que filter (un2up <2up.pdf >1up.pdf
).Ignorer les avertissements de dépréciation; Seuls les responsables de PyPdf doivent s’en préoccuper.
Si l'entrée est orientée de manière inhabituelle, vous devrez peut-être utiliser des coordonnées différentes pour tronquer les pages. Voir Pourquoi mon code ne scinde-t-il pas correctement chaque page d'un fichier PDF numérisé?
Au cas où cela serait utile, voici ma réponse précédente, qui associe deux outils et une intervention manuelle:
Les deux outils sont nécessaires car, autant que je sache, pdfpages n’est pas en mesure d’appliquer deux transformations différentes à la même page dans un flux. Dans l'appel à
pdftk
, remplacez 42 par le nombre de pages du document d'entrée (2up.pdf
).Si vous n'avez pas pdfjam 2.0, il suffit d'installer PDFLaTeX avec le paquet pdfpages (sous Ubuntu: vous avez besoin de texlive-latex-recommandé et peut-être (sous Ubuntu: texlive-fonts-recommandé ), et d'utiliser le pilote suivant. fichier
driver.tex
:Puis exécutez les commandes suivantes, en remplaçant 42 par le nombre de pages du fichier d’entrée (qui doit être appelé
2up.pdf
):la source
pdfjam
commande.q.mediaBox.lowerRight = (w, h/2)
Juste un ajout depuis que j'ai eu des problèmes avec le script Python (et plusieurs autres solutions): pour moi
mutool
a très bien fonctionné. C'est un ajout simple et petit livré avec l'élégantmupdf
lecteur. Donc vous pouvez essayer:Pour les fractionnements horizontaux, remplacez
y
parx
. Et vous pouvez bien sûr combiner les deux pour des solutions plus complexes.Vraiment heureux d'avoir trouvé cela (après des années d'utilisation quotidienne de mupdf :)
mutool
livré avec mupdf à partir de la version 1.4: http://www.mupdf.com/newsInstallation
mupdf
et àmutool
partir de la source:Ou rendez-vous sur la page des téléchargements pour trouver une version plus récente.
la source
mutool
était fait pour ça. Aussi, méfiez-vous de-y
, je pense que dans la plupart des cas, ce que vous voulez, c'est-x
.Imagemagick peut le faire en une seule étape:
la source
-density 400
paramètre`, sa qualité est encore meilleure.La commande Convertir d'ImageMagick peut vous aider à rogner votre fichier en 2 parties. Voir http://www.imagemagick.org/Usage/crop/
Si j'étais vous, j'écrirais un script (shell) comme celui-ci:
Pour chaque page, recadrer la première moitié et le mettre dans un fichier nommé $ {PageNumber} A
Rognez la seconde moitié et placez-la dans un fichier nommé $ {PageNumber} B.
Vous obtenez 1A.pdf, 1B.pdf, 2A.pdf, 2B.pdf, etc.
la source
D'après la réponse de Gilles et comment trouver le nombre de pages PDF que j'ai écrit
Donc je peux courir
où 50 pour ajuster la marge et 1,2 pour l'échelle.
la source
Voici une variante du code PyPDF posté par Gilles. Cette fonction fonctionnera quelle que soit l'orientation de la page:
la source
La meilleure solution a été mutool, voir ci-dessus:
la scission:
mais alors vous devez faire pivoter les pages à gauche:
la source
Basé sur la réponse de Benjamin sur AskUbuntu, je recommanderais d'utiliser l'outil graphique appelé gscan2pdf .
Importez le fichier de numérisation PDF dans gscan2pdf. Notez que les fichiers PDF non-image peuvent ne pas fonctionner. Les analyses sont correctes, vous n'avez donc pas à vous inquiéter.
Cela peut prendre un certain temps en fonction de la taille du document. Attendez qu'il se charge.
Appuyez sur Ctrl + A pour sélectionner toutes les pages, puis faites-les pivoter (Ctrl + Maj + C) si nécessaire.
Allez dans Outils >> Nettoyer . Sélectionnez Layout comme double et # pages de sortie = 2 .
Appuyez sur OK et attendez jusqu'à ce que le travail est terminé.
Enregistrez le fichier PDF. Terminé.
la source
La solution de moraes n'a pas fonctionné pour moi. Le problème principal était le calcul x5 et x6. Ici, un décalage doit être pris en compte, c'est-à-dire si lowerLeft n'est pas à (0,0)
Voici donc une autre variante, avec des adaptations supplémentaires pour utiliser PyPDF2 et Python 3:
la source