¿Hay una manera fácil de extraer texto sin formato de un archivo pdf?
En los sistemas *nix solía tener un comando ps2ascii
que hacía el trabajo, pero parece que este comando no está instalado de forma predeterminada en mi Mac.
¿Cuál sería la forma más fácil de extraer texto de un archivo pdf o, alternativamente, cómo acceder ps2ascii
a mi sistema?
ps2ascii
es parte de Ghostscript , que se puede instalar en Mac OS X (y es posible que ya lo esté de forma predeterminada de fábrica).
brew install ghostscript
debería permitirle instalar ps2ascii
. Ejecutar ese programa imprimió todo el texto de un PDF que quería convertir. ¡Gracias!La siguiente secuencia de comandos de python generará el texto de un documento PDF a un archivo .txt. (Nota: no hay garantía de que el texto esté necesariamente en un orden 'lógico' legible por humanos, debido a la forma en que se almacenan los datos en el formato PDF).
El script creará archivos de texto para cualquier archivo PDF proporcionado como argumentos en la línea de comando (p. ej pdf2txt.py myPDF.pdf
.), o puede usarlo en la acción "Ejecutar script de shell" de Automator, configurando el tipo de shell en python y Pasar la entrada a "Como argumentos". .
#!/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()
pip install pyobjc
.Quartz
y CoreFoundation
? ¿Es el paquete integrado python para macOS?Si no le importa usar una GUI, puede seleccionar texto de un PDF abierto con Preview.app
No conozco ninguna utilidad nativa de OS X que haga eso, sin embargo, puede instalar la mayoría de los comandos de Unix/Linux con cualquiera de estos tres métodos:
Homebew : Homebrew es la forma más fácil y flexible de instalar las herramientas UNIX que Apple no incluyó con OS X.
Fink : El proyecto Fink quiere llevar todo el mundo del software Unix Open Source a Darwin y Mac OS X.
Macports : El Proyecto MacPorts es una iniciativa comunitaria de código abierto para diseñar un sistema fácil de usar para compilar, instalar y actualizar software de código abierto basado en línea de comandos, X11 o Aqua en el sistema operativo Mac OS X.
Homebrew es el "chico nuevo en el bloque" y promete resolver los "problemas y limitaciones" que tienen los otros dos (cualesquiera que sean esos problemas). Le sugiero que eche un vistazo a todos ellos y utilice lo que considere más flexible/sencillo para sus necesidades.
Sin embargo, hay una aplicación (Payware) que solía hacer eso (no sé si todavía lo hace). Estoy hablando de DEVONthink , y puedes probar una demostración durante unos días.
actualización : de acuerdo con esta publicación , puede instalar DevonThink (versión de prueba) y extraer el binario 'pdftotext' " que es gratis, por supuesto " [sic] fuera del paquete.
ps2ascii
? ¿Y cuál debo preferir?Utilice convertidores de documentos en línea como Saaspose.PDF que pueden convertir su archivo PDF en un documento basado en TXT. Y debido a que es una API en la nube, no es necesario descargar ni instalar nada.
Juan A Navarro
Felipe Regan
usuario11707