Libreria di parser PDF Python open source
Prova questa libreria Python sorgente gratuita e open source per analizzare, leggere ed estrarre testo, immagini, tabelle e altri contenuti da documenti PDF.
Cos'è PyMuPDF?
PyMuPDF, noto anche come Fitz, è una libreria Python open source che fornisce un set completo di strumenti per lavorare con file PDF. Con PyMuPDF, gli utenti possono eseguire in modo efficiente attività come l'apertura di PDF, l'estrazione di testo, immagini e tabelle, la manipolazione delle proprietà della pagina come rotazione e ritaglio, la creazione di nuovi documenti PDF e la conversione di pagine PDF in immagini.
PyMuPDF supporta diverse funzionalità elencate di seguito:
- Lettura di documenti PDF: PyMuPDF può aprire e leggere documenti PDF, consentendoti di accedere al testo, alle immagini e ad altri contenuti al loro interno.
- Estrazione testo: puoi estrarre testo da documenti PDF, inclusi contenuti testuali, caratteri e informazioni sul layout.
- Estrazione immagini: puoi estrarre immagini da documenti PDF in vari formati, come JPEG o PNG.
- Estrazione tabelle: puoi anche estrarre tabelle da documenti PDF.
In questa recensione, il nostro focus principale sarà sulle funzionalità di estrazione e analisi della libreria. Per una valutazione approfondita delle funzionalità di divisione, unione e gestione delle pagine, fai clic qui.
Iniziare con PyMuPDF
È necessaria la versione 3.8.0 di Python o successiva per installare e utilizzare PyMuPDF. Quindi, installa prima Python e poi usa i comandi seguenti per installare PyMuPDF sul tuo computer usando pip e ambiente virtuale.
Linux
python -m venv pymupdf-venv
. pymupdf-venv/bin/activate
pip install pymupdf
Mac OS
python -m venv pymupdf-venv
. pymupdf-venv/bin/activate
pip install pymupdf
finestre
python -m venv pymupdf-venv
.\pymupdf-venv\Scripts\activate
pip install pymupdf
Estrai testo da PDF
Puoi utilizzare la libreria PyMuPDF in Python per estrarre testo da un documento PDF ed eseguire analisi del testo, come il conteggio delle parole, semplicemente utilizzando le funzioni fornite nella libreria, come mostrato nel codice seguente:
Produzione
L'immagine seguente mostra il testo estratto e il numero di parole nel file PDF:
Estrai immagini da PDF
Possiamo utilizzare la libreria PyMuPDF per estrarre immagini da un documento PDF in Python. Lo snippet di codice seguente apre il file PDF specificato, estrae le immagini dal PDF e le salva nella directory di lavoro corrente:
Produzione
Di seguito è riportata l'immagine PNG estratta dal documento PDF
Estrai tabelle da PDF
Possiamo anche utilizzare la libreria PyMuPDF per elaborare un documento PDF ed estrarne delle tabelle. Controlla di seguito lo snippet di codice che apre il file PDF specificato ed estrae le tabelle dal documento PDF:
Produzione
Lo screenshot seguente mostra la tabella estratta dal documento PDF:
Inserisci testo nel PDF
Di seguito lo snippet di codice Python mostra l'uso della libreria PyMuPDF per inserire testo in un file PDF e salvare il PDF modificato come text.pdf:
Produzione
Il testo inserito utilizzando il codice sopra riportato è evidenziato nel riquadro rosso riportato di seguito:
Riconoscimento del testo PDF utilizzando OCR con PyMuPDF
We will perform OCR on the PDF file containing the following image:Produzione
L'immagine seguente mostra il testo estratto dall'immagine presente nel file PDF fornito:
Conclusione
In sintesi, PyMuPDF è uno strumento professionale con alcuni chiari punti di forza e di debolezza. È ottimo per attività come l'OCR e l'estrazione del testo, il che lo rende utile per la gestione del testo nei PDF.
Tuttavia, non è così efficace nell'estrarre tabelle dai PDF, specialmente quando i PDF hanno una struttura complessa o un numero maggiore di pagine, il che potrebbe rappresentare uno svantaggio per alcuni utenti. Inoltre, in determinate situazioni potrebbe richiedere librerie aggiuntive come Panda e file di dati in lingua Tesseract OCR, aggiungendo complessità al suo utilizzo. Nonostante queste limitazioni, PyMuPDF rimane una scelta solida per lavorare con il testo nei PDF.