Esto ha sido discutido hace un año aquí:
OCR por lotes para muchos archivos PDF (no ya de Roc)?
Hay alguna forma de OCR por lotes de archivos Pdf que no han sido ya de Roc? Este es, creo, el estado actual de las cosas se trata de dos cuestiones:
OCR por lotes de archivos Pdf
Windows
Acrobat – Este es el más straightfoward motor de ocr que se OCR por lotes. El único problema parece ser que 1) no omitir archivos que ya han sido Roc 2) tratar de tirar un montón de archivos Pdf (algunos de los antiguos) y el reloj que se bloquee. Es un poco buggy. Se advertirá que en cada error que corre (aunque se puede decir que el software no notificar. Pero, de nuevo, se muere horriblemente en ciertos tipos de archivos Pdf para su kilometraje puede variar.
ABBYY FineReader (Lote/Scansnap), Omnipage – Estos tienen que ser algunas de las peores obras programadas de software conocida por el hombre. Si usted puede averiguar cómo plenamente automatizar (sin preguntar) OCR por lotes de archivos Pdf se guarda con el mismo nombre , a continuación, por favor, publicarlo aquí. Parece que la única solución que pude encontrar error en alguna parte--el cambio de nombre, no es totalmente automático, etc. etc. En el mejor, hay una manera de hacerlo, pero la documentación y la programación es tan horrible que nunca lo vas a encontrar.
ABBYY FineReader Engine, ABBYY Recognition Server - Estas son realmente más soluciones empresariales, probablemente sería mejor simplemente llegar acrobat para que se ejecute más de una carpeta y tratar y eliminar los archivos pdf que te dan errores/bloquear el programa que va a través de la molestia de tratar de instalar el software de evaluación (suponiendo que eres un simple usuario final). No parece un costo competitivo para el pequeño usuario.
** Autobahn DX estación de trabajo ** el costo de este producto es tan prohibitivo, que probablemente podría comprar 6 copias de acrobat. Realmente no es un usuario final de la solución. Si eres una empresa de la instalación, esta puede ser la pena para ti.
Linux
- WatchOCR – ya no desarrollado, y básicamente imposible de ejecutar en las modernas distribuciones de Ubuntu
- pdfsandwich – ya no desarrollado, básicamente imposible de ejecutar en las modernas distribuciones de Ubuntu
- ** ABBY LINUX OCR ** - esto debe ser secuencias de comandos, y parece que tiene buenos resultados:
http://www.splitbrain.org/blog/2010-06/15-linux_ocr_software_comparison
Sin embargo, como muchos de estos otros los productos de ABBYY que cobran por la página, de nuevo, usted puede ser mejor tratando de conseguir Acrobat OCR por Lotes de trabajo.
*Ocrad, GOCR, OCRopus, tesseract, * – estos pueden funcionar, pero hay un par de problemas:
- Los resultados de OCR no son tan grandes como, por ejemplo, acrobat para algunos de estos (ver enlace arriba).
- Ninguno de los programas se llevan en un archivo PDF y de salida en un archivo PDF. Tienes que crear una secuencia de comandos y se rompen el PDF de la primera y ejecutar los programas de cada uno y, a continuación, vuelva a montar el archivo como un pdf
- Una vez que usted lo hace, usted puede encontrar, como hice yo, que (tesseract) crea un programa de OCR capa que se cambie. Así que si usted busca la palabra 'la', obtendrá un punto culminante de la parte de la palabra junto a ella.
Lote DjVu → Convertir a PDF – no lo he visto, pero parece un horrible round de una pelea de solución.
En línea
- PDFcubed.com – vamos, no es realmente un lote de solución.
- ABBYY Nube OCR - no estoy seguro si esto es realmente un lote de solución, de cualquier manera, usted tiene que pagar por la página y esto podría llegar a ser muy caro.
La identificación de la no-Roc Pdf
Este es un poco más fácil del problema, que puede ser resuelto fácilmente en Linux y mucho menos en Windows. Yo era capaz de código de un script en perl usando pdffont
a identificar si las fuentes están incrustados para determinar qué archivos son no-Roc.
Actual "soluciones"
Utilizar una secuencia de comandos para identificar a los no-Roc pdf (para que no vuelva a ejecutar a lo largo de miles de Roc Pdf) y copiar a un directorio temporal (manteniendo el correcto árbol de directorios) y, a continuación, utilizar Acrobat en Windows para ejecutarse a través de estos con la esperanza de que los lotes más pequeños no se cuelgue.
uso el mismo guión, pero conseguir uno de los linux ocr herramientas para trabajar correctamente, arriesgando la calidad del ocr.
Creo que voy a probar #1, solo estoy preocupado demasiado por los resultados de la Linux herramientas de OCR (no creo que nadie se ha realizado una comparación) y de la ruptura de los archivos separados y costura juntos de nuevo parece ser innecesario de codificación si Adobe en realidad puede OCR por lotes de un directorio sin ahogarse.
Si quieres un completamente gratis solución, tendrás que utilizar una secuencia de comandos para identificar la no-Roc pdf (o simplemente volver a ejecutar más de Roc) y, a continuación, utilizar una de las herramientas de linux para probar y OCR. Teseract parece tener los mejores resultados, pero, de nuevo, algunas de estas herramientas no son compatibles bien en las modernas versiones de Ubuntu, aunque si se puede configurar y solucionar el problema que tuve, donde la capa de la imagen no coincide con la coincidencia de texto de la capa (con tesseract), entonces tendría una bonita solución viable y una vez más Linux > Windows.
¿Tiene usted una solución de trabajo para automatizar completamente, OCR por lotes de archivos Pdf, omitiendo ya Roc archivos manteniendo el mismo nombre, con alta calidad? Si es así, yo realmente apreciaría la entrada.
Script en Perl para mover la no-Roc archivos a un directorio temporal. No puedo garantizar que esto funciona y probablemente necesario volver a escribir, pero si alguien hace el trabajo (suponiendo que no funciona) o trabajar mejor, hágamelo saber y voy a publicar una versión mejor aquí.
#!/usr/bin/perl
# move non-ocred files to a directory
# change variables below, you need a base dir (like /home/joe/), and a sourcedirectory and output
# direcotry (e.g books and tempdir)
# move all your pdfs to the sourcedirectory
use warnings;
use strict;
# need to install these modules with CPAN or your distros installer (e.g. apt-get)
use CAM::PDF;
use File::Find;
use File::Basename;
use File::Copy;
#use PDF::OCR2;
#$PDF::OCR2::CHECK_PDF = 1;
#$PDF::OCR2::REPAIR_XREF = 1;
my $basedir = '/your/base/directory';
my $sourcedirectory = $basedir.'/books/';
my @exts = qw(.pdf);
my $count = 0;
my $outputroot = $basedir.'/tempdir/';
open( WRITE, >>$basedir.'/errors.txt' );
#check file
#my $pdf = PDF::OCR2->new($basedir.'/tempfile.pdf');
#print $pdf->page(10)->text;
find(
{
wanted => \&process_file,
# no_chdir => 1
},
$sourcedirectory
);
close(WRITE);
sub process_file {
#must be a file
if ( -f $_ ) {
my $file = $_;
#must be a pdf
my ( $dir, $name, $ext ) = fileparse( $_, @exts );
if ( $ext eq '.pdf' ) {
#check if pdf is ocred
my $command = "pdffonts \'$file\'";
my $output = `$command`;
if ( !( $output =~ /yes/ || $output =~ /no/ ) ) {
#print "$file - Not OCRed\n";
my $currentdir = $File::Find::dir;
if ( $currentdir =~ /$sourcedirectory(.+)/ ) {
#if directory doesn't exist, create
unless(-d $outputroot.$1){
system("mkdir -p $outputroot$1");
}
#copy over file
my $fromfile = "$currentdir/$file";
my $tofile = "$outputroot$1/$file";
print "copy from: $fromfile\n";
print "copy to: $tofile\n";
copy($fromfile, $tofile) or die "Copy failed: $!";
# `touch $outputroot$1/\'$file\'`;
}
}
}
}
}