Herramienta o biblioteca para copiar texto OCRed de un pdf a otro

Tengo un archivo pdf OCRed probablemente con Adobe Professional y algunas ediciones adicionales que no se pueden revertir. Tengo un pdf original sin OCRed ni ninguna otra edición.

Ahora quiero incorporar el texto OCRed en la copia original.

  • ¿Hay bibliotecas c/c++/Python para lograr esto con mi propio código?
  • ¿Hay alguna aplicación (preferiblemente en Linux, pero también acepta aquellas en Windows) que tenga esto implementado listo para usar?
Tim, este sitio trata de recomendar software para tareas específicas. Su pregunta parece más bien pedir un tutorial, que está fuera de tema aquí. Si desea saber cómo programar eso usted mismo, este no es el lugar (no estoy seguro de si Stack Overflow o los programadores podrían ser adecuados, pero puede consultar su /help/on-topicpágina respectiva). Si está buscando alguna pieza de software para hacer el trabajo, se necesita una reformulación. Consulte ¿Qué se requiere para que una pregunta contenga "suficiente información"? para una guía cruda.
Estoy pidiendo recomendaciones de herramientas (bibliotecas o software), no de tutoriales.
Entendido. He editado su pregunta un poco para que quede más claro (y para evitar que otros luchen por los mismos detalles).
Para eso está el hOCR. DigitWiki tiene una introducción a los conceptos y herramientas básicos.

Respuestas (2)

Usted mencionó querer usar una biblioteca para implementar este tipo de reconocimiento en su propio código. Sugeriría usar LEADTOOLS OCR, este es un SDK comercial para reconocimiento óptico de caracteres. El SDK LEADTOOLS OCR está disponible para C y C++. Reuní un fragmento de código básico usando las bibliotecas C que tomarán un mapa de bits e imprimirán el texto.

       BITMAPHANDLE bitmap = { 0 };
       L_OcrEngine ocrEngine = NULL;
       L_OcrPage ocrPage = NULL;
       L_OcrDocumentManager ocrDocumentManager = NULL;
       L_OcrDocument ocrDocument = NULL;
       L_OcrEngineManager_CreateEngine(L_OcrEngineType_Advantage, &ocrEngine);
       L_OcrEngine_Startup(ocrEngine, NULL, OCR_ADVANTAGE_RUNTIME_DIR);
       L_LoadBitmap("Path to Bitmap", &bitmap, sizeof(BITMAPHANDLE), 0, ORDER_RGB, NULL, NULL);
       L_OcrPage_FromBitmap(ocrEngine, &ocrPage, &bitmap, L_OcrBitmapSharingMode_AutoFree, NULL, NULL);
       L_OcrPage_AutoZone(ocrPage, NULL, NULL);
       retCode = L_OcrPage_Recognize(ocrPage, NULL, NULL);
       L_WCHAR* text = NULL;
       L_UINT textLength = 0;
       L_OcrPage_GetText(ocrPage, -1, &text, &textLength);
       printf("%ls", text);

Alternativamente, puede guardar los resultados directamente en PDF o en un formato de documento compatible:

L_OcrDocument ocrDocument = NULL;
L_OcrDocument_Save(ocrDocument, outputPath, DOCUMENTFORMAT_PDF, NULL, NULL);

Puede encontrar más código e información en su sitio de ayuda .

Uso Microsoft OneNote como herramienta de OCR. Al hacer clic con el botón derecho en una imagen, puede copiar el texto completo en imágenes y también tiene la capacidad de buscar texto en la imagen. Es gratuito y preciso, se ejecuta en Windows y es compatible con casi todos los formatos de imagen.

Puede copiar el texto del interior y pegarlo en un documento de texto.

Puede buscar el contenido en PDF.

No estoy seguro de si funciona en Ubuntu o no a través de Wine, ya que Microsoft Office ahora está disponible para Mac OS, OneNote funcionará en él.

El punto extra es que admite varios idiomas :) Inglés, francés, español también