Skills

pdf : traiter des fichiers PDF avec Python

À utiliser quand un utilisateur mentionne ou demande un PDF. Ouvrez d'abord un fichier local en lecture seule avec pypdf pour confirmer le nombre de pages ; pour un formulaire, passez par FORMS.md.

Official source · pdf

Install

from pypdf import PdfReader, PdfWriter

À qui ça s'adresse

Utilisez ce guide pdf lorsqu'un utilisateur mentionne un fichier .pdf ou demande de produire un PDF. Il couvre la lecture ou l'extraction de texte/tableaux, la fusion, la découpe, la rotation, le filigrane, la création, le remplissage de formulaires, le chiffrement/déchiffrement, l'extraction d'images, et l'OCR sur des scans pour la recherche. Ce n'est pas un substitut à un lecteur particulier, et il ne choisit pas à votre place un service commercial non nommé.

Le bon prérequis : vous comptez faire ces opérations de base avec des bibliothèques Python et des outils en ligne de commande. Le matériau indique que les fonctions avancées, les bibliothèques JavaScript et les exemples plus fins sont dans REFERENCE.md ; ne prenez pas cette introduction pour un manuel complet. Aucune liste de produits d'agent utilisables n'est donnée ; ne traitez pas Python ou JavaScript comme l'unique runtime exclusif. La page officielle du guide est

https://raw.githubusercontent.com/anthropics/skills/main/skills/pdf/SKILL.md

Premier essai en 3 minutes

Le premier chemin recommandé est l'exemple de lecture pypdf du matériau, pas un installeur inventé. Prérequis : Python est déjà sur la machine et vous pouvez exécuter from pypdf import PdfReader, PdfWriter. Si l'import échoue, arrêtez-vous à l'erreur d'import ; ne réécrivez pas le PDF.

Premier essai à bas risque : préparez un document.pdf local déjà présent. Vérifiez que le fichier existe, puis ouvrez-le en lecture seule et imprimez le nombre de pages :

from pypdf import PdfReader, PdfWriter
reader = PdfReader("document.pdf")
print(f"Pages: {len(reader.pages)}")

Signal de succès : le terminal affiche Pages: suivi d'un nombre. C'est une lecture, pas une fusion, un chiffrement ou un écrasement. Si le fichier n'existe pas, arrêtez-vous à l'échec d'ouverture ; ne créez ni ne téléchargez un PDF non nommé. PdfWriter est importé sur la même ligne, mais n'appelez pas d'écriture disque au premier essai.

Cas d'usage

Cas 1 : confirmer le nombre de pages d'un PDF local, point de départ d'une extraction ultérieure. L'opération est le PdfReader("document.pdf") et len(reader.pages) ci-dessus. Le matériau liste lecture et extraction de texte/tableaux comme capacités, mais l'extrait n'écrit complètement que l'impression du nombre de pages ; le premier critère de fin est donc d'obtenir ce nombre. S'il faut aussi du texte, retournez à la même page pour trouver l'appel correspondant ; n'écrivez pas la sortie du nombre de pages comme une extraction intégrale.

Cas 2 : il faut remplir un formulaire PDF. Le matériau indique : If you need to fill out a PDF form, read FORMS.md and follow its instructions. La première étape de ce chemin est donc d'ouvrir FORMS.md et de suivre ses étapes, pas d'inventer des champs ou des commandes de sauvegarde sur cette page. Le critère de fin est d'avoir commencé selon FORMS.md, pas de supposer le formulaire déjà soumis. Si l'objectif réel est l'OCR d'un scan, le matériau donne à part pip install pytesseract pdf2image et convert_from_path ; c'est un autre chemin avec des dépendances supplémentaires — ne le mélangez pas avec le remplissage en une seule étape.

Limites d'usage

Les opérations de base visent les bibliothèques Python et les outils en ligne de commande ; l'avancé, JavaScript et les exemples détaillés pointent vers REFERENCE.md et ne sont pas développés ici. L'OCR nécessite pytesseract et pdf2image ; convertissez d'abord les pages en images. Le remplissage de formulaire doit passer par FORMS.md.

Le matériau ne fournit ni paquet d'installation graphique ni liste de clients. Fusion, découpe, rotation, filigrane, chiffrement et extraction d'images sont nommés comme capacités, mais l'extrait n'en donne pas les commandes complètes ; ne les écrivez donc pas comme des étapes déjà copiables. Avant d'écrire sur le disque, de chiffrer ou d'écraser le fichier d'origine, confirmez le chemin cible et les effets de bord, puis exécutez.