Manipuler document pdf avec python

Fermé
cagoule Messages postés 53 Date d'inscription dimanche 6 juillet 2008 Statut Membre Dernière intervention 27 mai 2023 - 7 sept. 2021 à 01:16
yg_be Messages postés 23473 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 février 2025 - 12 sept. 2021 à 14:06
Bonjour,

Je ne connais pas grand-chose en informatique. Je programme un tout petit peu en python (genre niveau scolaire).
J’aimerais créer un fichier pdf (on l’appellera pdf2) à partir d’un autre fichier pdf (on l’appellera pdf1)

pdf1 est un document de plusieurs pages. Il est composé de plusieurs « dossiers » (au sens papier du terme), on les nommera d1, d2, etc. Chacun de ces « dossiers » comporte 2 parties (on les appellera A et B). Chacune de ces parties comporte plusieurs pages (on les notera 1,2, etc).
Ces « dossiers » ne font pas tous le même nombre de pages (ni les 2 parties qui les composent, donc).

Pour résumer, pdf1 se présente comme ça
p1 : d1-A-1
p2 : d1-A-2
p3 : d1-B-1
p4 : d1-B-2
p5 : d1-B-3
p6 : d2-A-1
p7 : d2-A-2
etc.
sur des centaines de pages (où pX sont les numéros de pages du document pdf1)

pdf2 devrait se présenter comme pdf1 mais en intercalant des pages « étrangères » à pdf1.
Ça peut être des pages blanches mais aussi des pages « écrites »
Ces insertions doivent être conditionnelles.
Ça veut dire qu’en fonction de ce qui est écrit en p3 sur d1-B-1, par exemple, il ajoute, à sa suite (en p4 donc) une page X ou une page Y.
Ou bien, par exemple encore, il faudrait intercaler un page blanche avant d2-A-1 si d2-A-1 est en position de page de nombre pair (pour la décaler et la placer en position de page impaire).

Auriez-vous une idée du langage qui me permettrait de créer un script qui ferait ça ?
Est-ce possible avec python ? Il y a un module pour ça ?
Une application déjà prête existe-t-elle ?

Merci à vous si vous avez pris le temps de lire mon pavé.
Si vous avez des indices de réponse, je vous remercie encore plus.


Configuration: Windows / Firefox 91.0
A voir également:

5 réponses

yg_be Messages postés 23473 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 février 2025 Ambassadeur 1 568
7 sept. 2021 à 10:09
bonjour,
tu n'expliques pas ton contexte. je pense qu'il serait préférable d'agir en amont, avant/pendant la création du pdf1.

que contient réellement le fichier pdf1? peux-tu y faire une recherche de texte?

comment déterminer la transition entre dossiers et entre parties?
0
cagoule Messages postés 53 Date d'inscription dimanche 6 juillet 2008 Statut Membre Dernière intervention 27 mai 2023 3
7 sept. 2021 à 17:02
pdf1 "sort" d'une application professionnelle sur laquelle je n'ai pas la main. Il m'est livré "tel quel". Tu as bien raison d'évoquer le fait qu'il serait mieux d'agir en amont mais ce n'est pas possible du tout.

pdf1 contient des pages avec du texte et des images. Oui on peut y faire une recherche de texte.

Les premières pages des sous parties A et B contiennent des chaines de texte qui leur est propre et je pensais utiliser ces chaines pour conditionner l'ajout des pages en question.
0
yg_be Messages postés 23473 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 février 2025 1 568
7 sept. 2021 à 17:40
Je ne vois alors aucun obstacle insurmontable.
Je n'ai jamais fait cela et j'ai fait quelques recherches sur Internet.
Ceci me semble une lecture utile: https://realpython.com/creating-modifying-pdf/#extracting-pages-from-a-pdf
Ceci un peu moins utile, mais en français: https://www.codeflow.site/fr/article/pdf-python

J'espère que tes pages ne sont pas numérotées ou que tu ne veux pas en changer la numérotation, sinon cela me semble plus ambitieux.
0
Salut.

>> Auriez-vous une idée du langage qui me permettrait de créer un script qui ferait ça ?

Tout langage ayant une bibliothèque permettant de les manipuler, c'est à dire beaucoup ^^

>> Est-ce possible avec python ? Il y a un module pour ça ?

Oui, les modules les plus uistés sont pypdf2 et reportlab.
https://pypi.org/project/PyPDF2/
https://pypi.org/project/reportlab/

>> Une application déjà prête existe-t-elle ?

Qu'entends-tu par application ?
Sachant que ton besoin est assez spécifique, il va être difficile de trouver un truc tout fait répondant parfaitement à ce que tu souhaites réaliser. Travailler des fichiers pdf n'est pas ce qu'il y a de plus facile à faire, si tu n'as pas beaucoup d'expérience en python et même simplement en programmation, ça va être assez ardu mais pas impossible si tu suis quelques tutos là-dessus, évidemment ça va être long et il faudra accepter d'avoir beaucoup de déboires avant d'y arriver.
0
cagoule Messages postés 53 Date d'inscription dimanche 6 juillet 2008 Statut Membre Dernière intervention 27 mai 2023 3
7 sept. 2021 à 22:10
Merci beaucoup pour vos réponses à tous les deux.
Les pages du pdf ne sont pas numérotées.
Je vais voir avec ces modules que vous m'indiquez.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Voilà, j'ai réussi. Mon script fonctionne parfaitement.
J'ai utilisé PyPDF2 et pdfminer sous python3 donc.
J'ai un peu galéré avec pip au début.
Puis j'ai galéré avec un peu tout XD.
Mais enfin ça marche.
Pas évident car même si j'ai pu faire avancer les choses peu à peu , certaines parties de certaines pages restent inaccessible à mon analyse.
Un peu de jugeote et on contourne la difficulté. ;)

Merci encore à vous.
0
yg_be Messages postés 23473 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 février 2025 1 568
12 sept. 2021 à 14:06
parfait!
peux-tu alors marquer la discussion comme résolue?
0