PDFMiner est un outil d'extraction de texte pour les documents PDF.
Attention : depuis 2020, PDFMiner n'est pas activement maintenu . Le code fonctionne toujours, mais ce projet est largement en sommeil. Pour le projet actif, consultez son fork pdfminer.six.
Python pur (3.6 ou supérieur).
Prend en charge PDF-1.7. (enfin presque)
Obtient l'emplacement exact du texte ainsi que d'autres informations de mise en page (polices, etc.).
Effectue une analyse automatique de la mise en page.
Peut convertir des PDF en d'autres formats (HTML/XML).
Peut extraire un aperçu (TOC).
Peut extraire le contenu balisé.
Prend en charge le cryptage de base (RC4 et AES).
Prend en charge différents types de polices (Type1, TrueType, Type3 et CID).
Prend en charge les langages CJK et les scripts d'écriture verticale.
Possède un analyseur PDF extensible qui peut être utilisé à d'autres fins.
> pip install pdfminer
> pdf2txt.py samples/simple1.pdf
pdf2txt.py extrait tous les textes rendus par programme. Il extrait également les emplacements correspondants, les noms de police, les tailles de police, le sens d'écriture (horizontal ou vertical) pour chaque segment de texte. Il ne reconnaît pas le texte dans les images. Un mot de passe doit être fourni pour les documents PDF restreints.
> pdf2txt.py [-P password] [-o output] [-t text|html|xml|tag] [-O output_dir] [-c encoding] [-s scale] [-R rotation] [-Y normal|loose|exact] [-p pagenos] [-m maxpages] [-S] [-C] [-n] [-A] [-V] [-M char_margin] [-L line_margin] [-W word_margin] [-F boxes_flow] [-d] input.pdf ...
-P password
: mot de passe PDF.
-o output
: nom du fichier de sortie.
-t text|html|xml|tag
: Type de sortie. (par défaut : automatiquement déduit du nom du fichier de sortie.)
-O output_dir
: Répertoire de sortie des images extraites.
-c encoding
: Encodage de sortie. (par défaut : utf-8)
-s scale
: Échelle de sortie.
-R rotation
: Fait pivoter la page en degrés.
-Y normal|loose|exact
: Spécifie le mode de mise en page. (uniquement pour la sortie HTML.)
-p pagenos
: Traite certaines pages uniquement.
-m maxpages
: Limite le nombre maximum de pages à traiter.
-S
: Supprime les caractères de contrôle.
-C
: Désactive la mise en cache des ressources.
-n
: désactive l'analyse de la mise en page.
-A
: applique l'analyse de la mise en page à tous les textes, y compris les figures.
-V
: Détecte automatiquement l'écriture verticale.
-M char_margin
: Spécifie la marge des caractères.
-W word_margin
: Spécifie la marge du mot.
-L line_margin
: Spécifie la marge de la ligne.
-F boxes_flow
: Spécifie le taux de flux de la boîte.
-d
: active la sortie de débogage.
dumppdf.py est utilisé pour déboguer les PDF. Il vide tout le contenu interne au format pseudo-XML.
> dumppdf.py [-P password] [-a] [-p pageid] [-i objid] [-o output] [-r|-b|-t] [-T] [-O directory] [-d] input.pdf ...
-P password
: mot de passe PDF.
-a
: Extrait tous les objets.
-p pageid
: extrait un objet Page.
-i objid
: Extrait un certain objet.
-o output
: nom du fichier de sortie.
-r
: Mode brut. Vide les flux bruts compressés/codés.
-b
: Mode binaire. Vide les flux non compressés/décodés.
-t
: Mode texte. Vide les flux au format texte.
-T
: Mode balisé. Vide le contenu balisé.
-O output_dir
: Répertoire de sortie pour les flux extraits.
Remplacez la variable STRICT par quelque chose de mieux.
Améliorez les fonctions de débogage.
Utilisez le module de journalisation au lieu de sys.stderr.
Cas de test appropriés.
Conformité PEP-8 et PEP-257.
Meilleure documentation.
Prise en charge du filtre de flux cryptographique.
pyPdf
xpdf
boîte pdf
mupdf