J'utilise OSX et j'aimerais pouvoir convertir des fichiers pdf en texte.
Je voudrais une application gratuite pour cela, car je suis sûr qu'il doit y en avoir.
J'utilise OSX et j'aimerais pouvoir convertir des fichiers pdf en texte.
Je voudrais une application gratuite pour cela, car je suis sûr qu'il doit y en avoir.
Réponses:
Voici les étapes que j'ai utilisées pour installer et utiliser xpdf via Homebrew.
Installez les dépendances de Homebrew:
xcode-select --install
Installez Homebrew à partir de leur site Web:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Faites ce qu'il vous dit de terminer l'installation de Homebrew.
Vérifiez que Homebrew est satisfait et fonctionne conformément aux spécifications.
brew doctor
Installez ensuite xpdf et ses dépendances:
brew install Caskroom/cask/xquartz
brew install xpdf
Enfin, utilisez pdftotext, un package fourni avec la suite xpdf:
pdftotext Some_Document.pdf Some_Document.txt
Le premier nom de fichier est un PDF existant; le second est la destination. Les résultats étaient bien meilleurs qu'avec une version (certes ancienne) d'Adobe Acrobat. Edit: les nouvelles versions (2019) d'Adobe Acrobat ont montré des résultats tout aussi médiocres.
xquartzn'est pas nécessaire pour les outils de la console dans xpdf. De plus, il existe une popplerfourchette xpdfqui semble beaucoup plus activement maintenue: github.com/scraperwiki/scraperwiki-python/issues/…
Plusieurs méthodes.
Utilisez des documents Google (vous aurez besoin d'un compte Google)
Utiliser Automator (certains travaux sont nécessaires)
Vous pouvez utiliser Automator pour créer un flux de travail qui peut extraire du texte à partir de fichiers PDF et l'enregistrer en tant que texte ou document RTF.

ou une application de l'App Store, par exemple PDF to Text
xpdf que j'ai installé avec des ports:
port install xpdf
contient:
xpdf-pdftotext
Il fait ce que vous voulez pour n'importe quel fichier PDF provenant d'un fichier texte (et non d'une image):
xpdf-pdftotext PDF_file text_file
La version actuelle d' Adobe Reader (11.0.09) comporte un élément "Enregistrer sous un autre" dans son menu Fichier.
L'une des options est le texte .
L'application est gratuite et fait un travail décent de sortie de fichiers texte. Toutes les images du nouveau document seront perdues au format .txt.
Je pense que vous devriez pouvoir copier et coller le texte dans un autre document. Pour sélectionner tout le texte
Notez que si vous essayez de le faire et qu'il n'y a pas de texte collé, juste un tas de lignes vides, essayez d'abord d'imprimer votre PDF dans un nouveau PDF, par exemple
Essayez maintenant le processus ci-dessus avec ce nouveau PDF. A travaillé pour moi!
PS: Si vous avez Microsoft Word, vous pourrez peut-être ouvrir votre PDF en Word
Le script python suivant affichera le texte d'un document PDF dans un fichier .txt. (Remarque: Il n'y a aucune garantie que le texte est nécessairement dans un ordre lisible `` logique '' par l'homme, en raison de la façon dont les données sont conservées au format PDF.)
Le script créera des fichiers texte pour tous les fichiers PDF fournis en tant qu'arguments sur la ligne de commande (par exemple pdf2txt.py myPDF.pdf), ou vous pouvez utiliser dans l'action "Exécuter le script shell" d'Automator, en définissant le type de shell sur python et passer l'entrée sur "En tant qu'arguments" . Ensuite, vous pouvez l'utiliser comme une action rapide ou DropApp.
#!/usr/bin/python
# coding: utf-8
import os, sys
from Quartz import PDFDocument
from CoreFoundation import (NSURL, NSString)
NSUTF8StringEncoding = 4
def pdf2txt():
for filename in sys.argv[1:]:
inputfile =filename.decode('utf-8')
shortName = os.path.splitext(filename)[0]
outputfile = shortName+" text.txt"
pdfURL = NSURL.fileURLWithPath_(inputfile)
pdfDoc = PDFDocument.alloc().initWithURL_(pdfURL)
if pdfDoc :
pdfString = NSString.stringWithString_(pdfDoc.string())
pdfString.writeToFile_atomically_encoding_error_(outputfile, True, NSUTF8StringEncoding, None)
if __name__ == "__main__":
pdf2txt()
if pdfDocinstruction par print(pdfDoc.string()).