Teoria
El reconocimiento optico de caracteres OCR es una tecnologia
utilizada para convertir diferentes tipos de documentos, como imagenes,
documentos impresos escaneados, fotografias de texto, archivos PDF, o
imagenes capturadas con una camara, en datos editables buscables.
#Instalar paquetes y librerias
library(tesseract)
library(magick)
## Linking to ImageMagick 6.9.12.93
## Enabled features: cairo, fontconfig, freetype, heic, lcms, pango, raw, rsvg, webp
## Disabled features: fftw, ghostscript, x11
library(officer)
library(pdftools)
## Using poppler version 23.04.0
#Obtener texto de una imagen
# Leer el PDF y convertir cada página a imagen
pdf_file <- "/Users/josemarentes/Downloads/eso3.pdf" # Cambia esta ruta por la de tu archivo PDF
imagenes <- image_read_pdf(pdf_file, density = 300)
# Descargar el motor de Tesseract para español (si no lo tienes)
tesseract_download("spa")
## [1] "/Users/josemarentes/Library/Application Support/tesseract5/tessdata/spa.traineddata"
tesseract_engine <- tesseract("spa")
# Crear un documento de Word
doc <- read_docx()
# Extraer texto de cada imagen (página del PDF) y agregarlo al documento Word
for (i in 1:length(imagenes)) {
imagen <- imagenes[i] %>% image_convert(format = "png") # Convertir la imagen a PNG para evitar problemas de formato
texto <- ocr(imagen, engine = tesseract_engine)
# Agregar el texto extraído al documento
doc <- doc %>% body_add_par(texto, style = "Normal")
}
# Guardar el documento Word
print(doc, target = "texto_extraido.docx")
#Conclusiones En esta actividad, aprendimos a extraer texto de una
imagen utilizando la función ocr del paquete Tesseract en R, que nos
permite convertir texto de una imagen en datos manipulables. Además,
vimos cómo guardar el texto extraído en un documento de Word utilizando
las funciones del paquete officer. Este proceso es útil para automatizar
la digitalización y almacenamiento de información contenida en imágenes.
Permite hacer mas eficiente para las empresas recopilar informacion
(digitalizar).
LS0tCnRpdGxlOiAiRXNvIgphdXRob3I6ICJKb3NlIEFuZ2VsIE1hcmVudGVzIgpkYXRlOiAiMjAyNC0wOC0xNCIKb3V0cHV0OiAKICBodG1sX2RvY3VtZW50OgogICAgdG9jOiBUUlVFCiAgICB0b2NfZmxvYXQ6IFRSVUUKICAgIGNvZGVfZG93bmxvYWQ6IFRSVUUKICAgIHRoZW1lOiBkYXJrCi0tLQoKYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9CmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkKYGBgCgojIFRlb3JpYSAKRWwgcmVjb25vY2ltaWVudG8gb3B0aWNvIGRlIGNhcmFjdGVyZXMgT0NSIGVzIHVuYSB0ZWNub2xvZ2lhIHV0aWxpemFkYSBwYXJhIApjb252ZXJ0aXIgZGlmZXJlbnRlcyB0aXBvcyBkZSBkb2N1bWVudG9zLCBjb21vIGltYWdlbmVzLCBkb2N1bWVudG9zIGltcHJlc29zCmVzY2FuZWFkb3MsIGZvdG9ncmFmaWFzIGRlIHRleHRvLCBhcmNoaXZvcyBQREYsIG8gaW1hZ2VuZXMgY2FwdHVyYWRhcyBjb24gdW5hIGNhbWFyYSwgCmVuIGRhdG9zIGVkaXRhYmxlcyBidXNjYWJsZXMuCgojSW5zdGFsYXIgcGFxdWV0ZXMgeSBsaWJyZXJpYXMgCgoKYGBge3J9CgpsaWJyYXJ5KHRlc3NlcmFjdCkKCmxpYnJhcnkobWFnaWNrKQoKbGlicmFyeShvZmZpY2VyKQoKbGlicmFyeShwZGZ0b29scykKYGBgCgojT2J0ZW5lciB0ZXh0byBkZSB1bmEgaW1hZ2VuIApgYGB7cn0KIyBMZWVyIGVsIFBERiB5IGNvbnZlcnRpciBjYWRhIHDDoWdpbmEgYSBpbWFnZW4KcGRmX2ZpbGUgPC0gIi9Vc2Vycy9qb3NlbWFyZW50ZXMvRG93bmxvYWRzL2VzbzMucGRmIiAgIyBDYW1iaWEgZXN0YSBydXRhIHBvciBsYSBkZSB0dSBhcmNoaXZvIFBERgppbWFnZW5lcyA8LSBpbWFnZV9yZWFkX3BkZihwZGZfZmlsZSwgZGVuc2l0eSA9IDMwMCkKCiMgRGVzY2FyZ2FyIGVsIG1vdG9yIGRlIFRlc3NlcmFjdCBwYXJhIGVzcGHDsW9sIChzaSBubyBsbyB0aWVuZXMpCnRlc3NlcmFjdF9kb3dubG9hZCgic3BhIikKdGVzc2VyYWN0X2VuZ2luZSA8LSB0ZXNzZXJhY3QoInNwYSIpCgojIENyZWFyIHVuIGRvY3VtZW50byBkZSBXb3JkCmRvYyA8LSByZWFkX2RvY3goKQoKIyBFeHRyYWVyIHRleHRvIGRlIGNhZGEgaW1hZ2VuIChww6FnaW5hIGRlbCBQREYpIHkgYWdyZWdhcmxvIGFsIGRvY3VtZW50byBXb3JkCmZvciAoaSBpbiAxOmxlbmd0aChpbWFnZW5lcykpIHsKICBpbWFnZW4gPC0gaW1hZ2VuZXNbaV0gJT4lIGltYWdlX2NvbnZlcnQoZm9ybWF0ID0gInBuZyIpICMgQ29udmVydGlyIGxhIGltYWdlbiBhIFBORyBwYXJhIGV2aXRhciBwcm9ibGVtYXMgZGUgZm9ybWF0bwogIHRleHRvIDwtIG9jcihpbWFnZW4sIGVuZ2luZSA9IHRlc3NlcmFjdF9lbmdpbmUpCiAgCiAgIyBBZ3JlZ2FyIGVsIHRleHRvIGV4dHJhw61kbyBhbCBkb2N1bWVudG8KICBkb2MgPC0gZG9jICU+JSBib2R5X2FkZF9wYXIodGV4dG8sIHN0eWxlID0gIk5vcm1hbCIpCn0KCiMgR3VhcmRhciBlbCBkb2N1bWVudG8gV29yZApwcmludChkb2MsIHRhcmdldCA9ICJ0ZXh0b19leHRyYWlkby5kb2N4IikKYGBgCgoKI0NvbmNsdXNpb25lcyAKRW4gZXN0YSBhY3RpdmlkYWQsIGFwcmVuZGltb3MgYSBleHRyYWVyIHRleHRvIGRlIHVuYSBpbWFnZW4gdXRpbGl6YW5kbyBsYSBmdW5jacOzbiBvY3IgZGVsIHBhcXVldGUgVGVzc2VyYWN0IGVuIFIsIHF1ZSBub3MgcGVybWl0ZSBjb252ZXJ0aXIgdGV4dG8gZGUgdW5hIGltYWdlbiBlbiBkYXRvcyBtYW5pcHVsYWJsZXMuIEFkZW3DoXMsIHZpbW9zIGPDs21vIGd1YXJkYXIgZWwgdGV4dG8gZXh0cmHDrWRvIGVuIHVuIGRvY3VtZW50byBkZSBXb3JkIHV0aWxpemFuZG8gbGFzIGZ1bmNpb25lcyBkZWwgcGFxdWV0ZSBvZmZpY2VyLiBFc3RlIHByb2Nlc28gZXMgw7p0aWwgcGFyYSBhdXRvbWF0aXphciBsYSBkaWdpdGFsaXphY2nDs24geSBhbG1hY2VuYW1pZW50byBkZSBpbmZvcm1hY2nDs24gY29udGVuaWRhIGVuIGltw6FnZW5lcy4KUGVybWl0ZSBoYWNlciBtYXMgZWZpY2llbnRlIHBhcmEgbGFzIGVtcHJlc2FzIHJlY29waWxhciBpbmZvcm1hY2lvbiAoZGlnaXRhbGl6YXIpLgo=