Prova di convertire gratuitamente pdf in testo


16

Sto usando OSX e vorrei essere in grado di convertire i file pdf in testo.

Vorrei un'applicazione gratuita per farlo, poiché sono sicuro che ce ne devono essere alcuni.


2
Stai cercando di estrarre testo da PDF che già contengono testo? (vale a dire, potresti copiare e incollare pezzi da essi) O stai cercando di riconoscere il testo che è nel contenuto dell'immagine?
Alan Shutko,

Fa free-ocr.com aiuto?
Tim

Risposte:


13

Ecco i passaggi che ho usato per installare e utilizzare xpdf tramite Homebrew.

  1. Installa le dipendenze di Homebrew:

    xcode-select --install
    
  2. Installa Homebrew dal loro sito Web:

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    
  3. Fai quello che ti dice di completare l'installazione di Homebrew.

  4. Verifica che Homebrew sia felice e funzionante secondo le specifiche.

    brew doctor
    
  5. Quindi installare xpdf e le sue dipendenze:

    brew install Caskroom/cask/xquartz
    
    brew install xpdf
    
  6. Infine, usa pdftotext, un pacchetto fornito con la suite xpdf:

    pdftotext Some_Document.pdf Some_Document.txt
    

Il primo nome file è un PDF esistente; il secondo è la destinazione. I risultati sono stati molto migliori rispetto a una versione (sicuramente precedente) di Adobe Acrobat. Modifica: le nuove versioni (2019) di Adobe Acrobat hanno mostrato risultati altrettanto scarsi.


2
Penso che xquartznon sia necessario per gli strumenti della console xpdf. Inoltre, c'è il popplerfork di xpdfcui sembra molto più attivamente mantenuto: github.com/scraperwiki/scraperwiki-python/issues/…
Jeroen Wiert Pluimers

6

Più metodi.

  1. Utilizza documenti Google (avrai bisogno di un account Google)

  2. Usa Automator (richiede un po 'di lavoro)

È possibile utilizzare Automator per creare un flusso di lavoro in grado di estrarre testo da PDF e salvarlo come documento di testo o RTF.

estrarre il testo da pdf

o un'app dall'App Store, ad esempio da PDF a testo


4

xpdf che ho installato con le porte:

port install xpdf

contiene:

xpdf-pdftotext

Fa quello che vuoi per qualsiasi file PDF che proviene da un file di testo (e non da un'immagine):

xpdf-pdftotext PDF_file text_file

1
Il comando, almeno come installato da HomeBrew, è solo "pdftotext".
Flash Sheridan,

@FlashSheridan Posso incoraggiarti a pubblicare una risposta riguardante "pdftotext" e come installarlo tramite homebrew? I commenti possono essere eliminati in qualsiasi momento (e inoltre non vengono visualizzati nelle ricerche).
Nohillside

4

La versione corrente di Adobe Reader (11.0.09) ha una voce "Salva come altro" nel suo menu File.

Una delle opzioni è Testo .

L'app è gratuita e fa un lavoro decente producendo file di testo. Tutte le immagini nel nuovo documento andranno perse con il formato .txt.


1

Penso che dovresti essere in grado di copiare e incollare il testo in un altro documento. Per selezionare tutto il testo

Apri il PDF in "Anteprima" e

  • scegli "Modifica | Seleziona tutto"
  • scegli "Modifica | Copia"

Vai a un'altra app, dì "Modifica testo"

  • scegli "Modifica | Incolla"

Nota che se provi a farlo e non c'è testo incollato, solo un mucchio di righe vuote, prova prima a stampare il tuo PDF su un nuovo PDF, ad es.

  • In Anteprima, seleziona "File | Stampa"
  • In basso a destra, seleziona "PDF | Salva come PDF"
  • Questo esporta un nuovo PDF.

Ora prova la procedura sopra descritta con questo nuovo PDF. Ha funzionato per me!

PS: se disponi di Microsoft Word, potresti essere in grado di aprire il tuo PDF in Word


1
Mentre questo dovrebbe funzionare quando il documento PDF contiene effettivamente contenuti di testo , non mantiene la formattazione e in alcuni casi produce testo spazzatura insieme a quello che sarebbe considerato testo desiderato. Nota che questo può essere lo stesso con altri metodi, ma ho ritenuto importante sottolineare.
user3439894

senza dubbio - non è sicuro per certo, e sono totalmente d'accordo con tutto ciò che hai detto. Lo aggiungo solo qui come opzione che ho notato prima, che ha funzionato per me senza installare nulla affatto ;-)
Brad Parks

Concordo anche sul fatto che funziona per la maggior parte dei casi, ma i numeri di pagina, i dettagli del piè di pagina che non sono correlati al documento e peggio ancora: SCORRIMENTO INFINITO su documenti di grandi dimensioni rende questa soluzione insoddisfacente. Se fosse meno di 5 pagine, lo prenderei in considerazione, ma dato che la maggior parte delle tabelle di cui ho bisogno provengono da PDF di siti di ricerca che si rifiutano di sputare Excel o SQL, questa opzione non è nemmeno funzionale.
Tmanok,

Concordato! non è un'opzione praticabile per il tuo caso d'uso
Brad Parks

1

Il seguente script python genererà il testo da un documento PDF in un file .txt. (Nota: non esiste alcuna garanzia che il testo sia necessariamente in un ordine "logico" leggibile dall'uomo, a causa del modo in cui i dati sono conservati in formato PDF.)

Lo script creerà file di testo per tutti i file PDF forniti come argomenti nella riga di comando (ad esempio pdf2txt.py myPDF.pdf), oppure è possibile utilizzare nell'azione "Esegui script shell" di Automator, impostando il tipo di shell su Python e passando l'input su "Come argomenti" . Quindi puoi usarlo come azione rapida o 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()

Funziona immediatamente (cioè - non è necessario installare alcuna libreria Python o altro!) - È solo un dump di testo non elaborato, ma a volte è quello che ti serve - nota che il file viene salvato nella directory corrente (se in esecuzione dal riga di comando) e non esce allo stdout
Brad Parks

@BradParks Dovrebbe essere salvato nella stessa cartella del file di input: prende il percorso del file dagli argomenti del comando. Come lo stai fornendo?
benwiggy,

ahh ... ero nella stessa cartella, quindi non l'ho mai notato - il mio unico vero intento era quello di dire che non arriva allo stdout e che funziona! Grazie!
Brad Parks,

1
Sostituisci le due righe dopo l' if pdfDocistruzione con print(pdfDoc.string()).
benwiggy,

Oh wow, è letteralmente la prima volta in assoluto che la distribuzione di Apple Python risulta utile per qualcosa !! Grazie per la risposta!!
Jérémie,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.