Maison > Article > développement back-end > Comment diviser des documents PDF à l'aide du module PyPDF2 en Python
Installer le module PyPDF2
# Ce module est strictement sensible à la casse, y est en minuscule et le reste est en majuscule
pip3 install PyPDF2
Une fois l'installation terminée, créez un dossier spécifiquement pour ce projet sur le serveur local disque dur, me voici Le chemin de stockage actuel est F:PythonPyPDF2 Il y a un dossier Python sur le lecteur F et un dossier nommé d'après ce module y est créé pour le stocker séparément et le distinguer des autres projets.
Créer des fichiers et préparer des documents PDF
Trouver un document PDF relativement volumineux pour m'entraîner. J'ai téléchargé son document sur le site officiel de Django. Ce document est assez volumineux, avec plus de 1900 pages, ce qui est largement suffisant. pour vous entraîner. Si nécessaire, allez sur le site officiel pour télécharger, ou répondez directement « pdf » à mon compte officiel pour obtenir le lien de téléchargement, puis créez un fichier de projet PDFCF.py.
Commencez à écrire
Le programme commence par deux lignes. Écrivez les deux phrases ci-dessus et ci-dessous. La première phrase signifie spécifier le programme en cours d'exécution de ce fichier. cela reste à voir. Cela ne sort pas, mais si vous savez exécuter rapidement des programmes par lots, vous connaîtrez sa fonction, je n'entrerai donc pas dans les détails ici.
#! python# PDFCF.py - pdf文件拆分程序
L'idée du fractionnement du document
Le nombre de parties en lesquelles il est divisé n'est pas fixé, mais le nombre de pages composé de chaque partie est fixé, puis il calcule dynamiquement le nombre de parties divisées. . L'idée du fractionnement est désormais disponible. L'étape suivante consiste à lister la formule de calcul.
拆分的份数= 文档总页数 / 拆份每个pdf组成的页数
Par exemple :
Si nous voulons diviser un document pdf avec un total de 35 pages et former un nouveau document toutes les 10 pages, alors la formule de calcul du nombre de parties en lesquelles il peut être divisé est comme suit :
3.5 = 35 / 10
A ce moment, tout le monde fait attention Si la division est incomplète, le reste est de 0,5. Qu'est-ce que cela signifie ? En utilisant cet exemple, cela signifie qu'il reste 5 pages après la division en 3 parties. Dans ce cas, quel que soit le reste, vous devez avancer de 1 pour terminer la division complète du document. les 3 premiers documents Chaque document est composé de 10 pages, et le quatrième document est constitué des 5 dernières pages. S'il est divisible, le résultat est directement le nombre de copies fractionnées.
Formule de calcul de fractionnement Python :
if 35 % 10: # 判断是否有余数 35 // 10 + 1 # 取余数整数部分加1else: 0 # 能整除则直接返回0 # 将这个循环写到一行4 = 35 // 10 + 1 if 35 % 10 else 0
Comment le diviser spécifiquement ?
Prenons comme exemple ce document divisé de 35 pages :
Parcourez chaque page de données pour num dans la plage (35), récupérez les données de chaque page, puis spécifiez la page divisée Divisez la plage de numéros :
Le premier document est de 0 à 10, excluant 10
Le deuxième document est de 10 à 20, excluant 20
Le troisième document est de 20 à 30 , à l'exclusion de 30
Le quatrième document est de 30 à 35, à l'exclusion de 35
Nous avons trouvé un modèle pour parcourir le premier nombre à chaque fois est le nombre de pages d'un document, multiplié par n'importe quel nombre. à laquelle vous appartenez pouvez l'obtenir. Nous avons constaté qu'il n'y a pas de modèle dans le deuxième nombre. En fait, si nous observons attentivement, il y a un modèle. Si nous trions le nombre de divisions, cet exemple est 1--4. Le deuxième nombre est le nombre actuel de divisions. multiplié par chacun Le nombre de pages qui composent le document (le nombre de pages est fixé à 10).
Mais lorsque nous parcourons pour la première fois, nous partons de 0, ce qui rend num inutilisable. Ensuite, nous le modifions et parcourons à partir de 1, range(1,35), parcourons depuis le début, en nous basant sur le fait que la plage le fait. n'inclut pas le dernier en lui-même. Les caractéristiques de (1-1)--10*1, sans compter 10
Le deuxième document est de 10*(2-1)--10*2, sans compter 20.
for num in range(1,35+1): pass for i in range(10 * (num-1), 10 * num if num != 4 else 35): passRemarque : Lorsque le parcours atteint num = 4 (le dernier numéro de tri du document), renvoyez simplement le nombre total de pages 35, et le parcours se termine ici. Pourquoi le nombre total de pages ici est-il de 35 au lieu de 35+1 ? En effet, nous partons de 0 cette fois et le numéro de page commence à 0, il n'est donc pas nécessaire d'ajouter 1.
Programme de fractionnement complet :
import PyPDF2Remarque : personnellement, je pense que l'idée de fractionnement ci-dessus est un peu alambiquée. Si vous avez une compréhension approfondie des concepts de découpage des bords et de taille de pas dans les listes Python, je ne le fais pas. Je ne pense pas que ce soit nécessaire. C'est compliqué. Il vous suffit de générer une grande liste du nombre total de pages, puis de diviser la liste en plusieurs petites listes à l'aide de la méthode de découpage. La plage de numéros de page PDF pour chaque division est ensuite la suivante. premier numéro de chaque petite liste - le dernier Numéro +1, j'ai également posté le code que j'ai implémenté en utilisant la méthode list pour votre référence.
Méthode de fractionnement de liste pour diviser un PDF :
#! python
Comment l'utiliser ?
Maintenez la touche Maj enfoncée dans le dossier du projet, cliquez avec le bouton droit de la souris, choisissez d'ouvrir la fenêtre de commande ici, entrez PDFCF.py, appuyez sur Entrée et modifiez la valeur de n en fonction de vos besoins.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!