scripts de Perl " arrastran " a través de la web, tamizar a través del océano de páginas HTML para información, y se encuentran inevitablemente algunos de los millones de archivos PDF de Adobe Acrobat salpicado a través de Internet . A pesar de que están listos para imprimir y atractivos , desde el punto de vista de un rastreador web , archivos PDF son una tuerca un poco más difícil de descifrar que simples páginas HTML , de texto. Por suerte , al igual que muchas de las tareas web , hay un módulo de Perl que puede ayudar a hacer la vida más fácil : CAM :: PDF . Esta interfaz de programación , aunque sobre todo la intención de crear y manipular archivos PDF , cuenta con algunas utilidades que permite secuencias de comandos para buscar en su contenido. Cosas que necesitará
Perl scripting entorno
CAM :: PDF Perl módulo
texto o código editor
PDF file
Ver Más instrucciones
1
Instalar CAM :: PDF . La utilidad CPAN proporciona la manera más fácil de hacer esto - empezar CPAN en la línea de comandos y en el sistema, escriba "install CAM :: PDF" (sin comillas)
2
Abra un editor y . iniciar el script , entrando en las líneas siguientes para iniciar el intérprete de Perl e importar el módulo necesario :
# /usr /bin /perluse CAM :: PDF ;
Añadir los siguientes dos líneas para ! procesar los argumentos de línea de comandos que el usuario pase en :
my $ archivo = cambio , mi $ search = cambio ;
el primer argumento pasado al script será el nombre de un PDF . archivos y la segunda , la cadena de búsqueda
3
Crear un nuevo objeto CAM :: PDF agregando la siguiente línea al script:
my $ doc = CAM :: PDF- > new ( $ file ) ;
Utilizando el método NumPages del módulo de importación para definir el límite superior, crear un bucle para procesar cada página del documento :
foreach mi $ p ( ( 1 .. $ doc -> NumPages ( ))) {
4
Dentro del bucle , añada esta línea de conseguir cada página del texto del archivo PDF :
< p> my $ str = $ doc -> getPageText ( $ p ) ;
Añada la siguiente sentencia de script para dividir el texto de la página hacia arriba en una serie de líneas :
@ lines = split ( /\\ n /, $ cadena ) ;
Termina la sentencia de bucle mediante la introducción de un corchete de cierre :
}
5
por último, añadir otro bucle de la secuencia de comandos para procesar cada línea de la página y buscar una coincidencia para cadena de búsqueda del usuario como una expresión regular. Si la expresión regular devuelve un partido, este ejemplo imprime la línea y el número de página en la salida estándar . En lugar de estas instrucciones de impresión , debe implementar código para procesar los resultados según sea necesario
my $ i = 0 ; . Foreach $ line ( @ lineas) { $ i + + ; if ( $ line = ~ /$ search /) {print búsqueda " \\ " $ \\ "que se encuentra en la línea de la página $ i $ p \\ n"; print " $ line \\ n \\ n"} }