scripts Perl " ramper " à travers le web , passant au crible l'océan de pages HTML pour information, et rencontrent inévitablement une partie des millions de fichiers PDF Adobe Acrobat saupoudré sur Internet. Bien qu'ils soient prêts à imprimer et attrayant du point de vue d'un robot web, des fichiers PDF sont un écrou légèrement plus difficile à casser que de simples pages HTML , texte. Heureusement , comme pour de nombreuses tâches de web , il existe un module Perl qui peuvent aider à rendre la vie plus facile : CAM :: PDF . Cette interface de programmation , mais surtout pour but de créer et de manipuler les fichiers PDF, a quelques utilitaires qui permet aux scripts de chercher leur contenu. Choses que vous devez 
 scripts Perl environnement 
 CAM :: PDF module Perl 
 texte ou éditeur de code 
 fichier PDF 
 Voir Plus Instructions 
 1 
 Installer CAM :: PDF . L'utilitaire CPAN fournit la meilleure façon de le faire - commencer CPAN à la ligne de commande et à l'invite , tapez " install CAM :: PDF " (sans les guillemets ) 
 2 
 Ouvrez un éditeur et . lancer le script , en entrant les lignes suivantes pour démarrer l'interpréteur Perl et importer le module nécessaire : 
 
 # /usr /bin /perluse CAM :: PDF ; 
 
 ajoutez les deux lignes suivantes à ! traiter les arguments de ligne de commande que l'utilisateur va passer dans : 
 
 my $ file = shift; my $ search = shift; 
 
 le premier argument passé au script sera le nom d'un fichier PDF . fichier, et la seconde , la chaîne de recherche 
 3 
 Créer un nouvel objet CAM :: PDF en ajoutant la ligne suivante dans le script : 
 
 my $ doc = CAM :: PDF -> new ( $ file) ; 
 
 En utilisant la méthode des numPages du module importé pour définir la limite supérieure, créer une boucle pour traiter chaque page du document: 
 
 foreach my $ p ( (1 .. $ doc -> numPages ( ) )) { 
 4 
 Dans la boucle , ajoutez cette ligne pour obtenir chaque page de texte à partir du fichier PDF: 
 < p> my $ str = $ doc -> getPageText ($ p ) ; 
 
 Ajoutez l'instruction de script suivant pour diviser le texte de la page vers le haut dans un réseau de lignes : 
 
 @ lines = split ( /\\ n /, $ str ) ; 
 
 Terminez l'instruction de la boucle en entrant une parenthèse fermante : 
 
 } 
 5 
 Enfin, ajoutez une autre boucle à le script pour traiter chaque ligne de la page et de rechercher une correspondance pour la chaîne de recherche de l'utilisateur comme une expression régulière . Si l'expression régulière retourne un match, cet exemple affiche la ligne et le numéro de la page sur la sortie standard . En lieu et place de ces états d'impression, vous devez implémenter le code pour traiter les résultats en fonction des besoins 
 
 my $ i = 0; . Foreach $ line ( @ lines ) { + + $ i; if ($ ligne = ~ /$ search /) {print " \\" $ search \\ "trouvé dans la ligne i $ de la page $ p \\ n"; print "$ ligne \\ n \\ n "}}