Page 2 sur 2

Re: [..] Recherche de fichier et impression.

Posté : jeu. 22 juil. 2010 18:59
par Jerome
Le truc dans ce que tu me dit, c'est que toi tu veux vérifier que la chaine que je recherche dans mon pdf existe, alors que moi je sait déjà qu'elle existe.

la seule chose a faire, c'est d'imprimer la page qui contient cette chaine.

Merci de ton aide.

Re: [..] Recherche de fichier et impression.

Posté : sam. 24 juil. 2010 14:18
par SagePourpre
Donc, une fois qu'on a notre chaîne, il ne reste qu'à la chercher dans le fichier, c'est ça ?

Quel lecteur pdf utilises-tu ?


Me basant sur celui que j'utilise, Foxit Reader,
je procèderais à peu près ainsi.


(Cet exemple est réellement fonctionnel avec Foxit Reader et nécessitera sans
aucun doute certaines modifications pour fonctionner avec un autre programme.)

Code : Tout sélectionner

#include <Array.au3>
Opt('WinTitleMatchMode',2)
$Lecteur_Pdf = 'M:\Backup\Portable\Foxit Reader.exe'
$result = 'C:\Users\Sage Pourpre\Desktop\1.pdf'
$PID = Run($Lecteur_Pdf & ' "' & $result & '"')  ; Run plutôt que ShellExecute afin de récupérer le Pid du processus
$hWnd = WinGetHandle($PID) ; Utilisation du PID pour récupérer la fenêtre associée au programme
WinWaitActive($hWnd) ; Attente d'activation de la fenêtre du lecteur
Send('^f') ; Envoi de CTRL+F
WinWaitActive('Find Text') ; Attente de la fenêtre Rechercher
Send('te') ; Envoi du terme à rechercher
Sleep(100) ; délai ... non nécessaire
Send('!f') ; Envoi de ALT+F afin de lancer la recher
Sleep(100)
; Besoin d'ajouter une vérification pour réagir si la fenêtre 'FoxitReader has finished searching the document' apparaît
Send('{ESC}') ; Fermeture de la fenêtre de recherche
$page = ControlGetText($hWnd,'','[CLASS:ComboBox; INSTANCE:1]') ; Récupération du texte contenu dans la fenêtre d'identification de la page en cours
ConsoleWrite($page & @CRLF)
$page = StringRegExp($page,'(.*) of',1) ; Permet de changer le format '3 of 10' (3eme page sur 10) pour ne garder que le 3
$page = $page[0]

ConsoleWrite($page & @CRLF)

; Et voilà... on a le numéro de page qu'on va pouvoir insérer dans la fenêtre d'impression plus tard.

; Il est possible d'inserer une boucle for next qui cherchera chaque instances de notre terme pour les
; stocker dans un tableau et ensuite lancer l'impression de plusieurs page contenant ce terme. 


 

Re: [..] Recherche de fichier et impression.

Posté : dim. 25 juil. 2010 15:52
par ayuckers
Bonjour,

En ce qui concernet la recherche dans un document PDF essayer ceci : Avec AcrobatReader

Code : Tout sélectionner

ShellExecute('AcroRd32.exe', ' /A "toolbar=0&navpanes=0&search=”toto”" "C:\AutoitDev\PDFOpenParameters.pdf"')

Adapter cette ligne en remplaçant toto par ce que vous voulez rechercher
pensé aussi a modifier le chemin d'acces du fichier PDF
autre exemple :

Code : Tout sélectionner

ShellExecute('AcroRd32.exe', ' /A "toolbar=0&navpanes=0&scrollbar=0&page=4&view=FitB" "C:\AutoitDev\PDFOpenParameters.pdf"')
Plus d'info ici : PDFOpenParameters.pdf

voici mon exemple avec Acrobat 9 : Recherche du numero de la page a imprimer

Code : Tout sélectionner

#include <Array.au3>

Global $text,$Tab
Global $Rechercher = 'word1' ; reference a rechercher
Global $Path = 'C:\AutoitDev\' ; chemin du fichier PDF
Global $PDFfile = 'PDFOpenParameters.pdf' ; nom du fichier PDF
Global $OpenParameters = ' /A "toolbar=0&navpanes=0&search=”'
Global $Command = $OpenParameters & $Rechercher & '”" "'&$Path&$PDFfile&'"'

AutoItSetOption("WinDetectHiddenText", 1) ; affiche le texte caché

ShellExecute('AcroRd32.exe',$Command) ; execute la commande de recherche
WinWaitActive("[CLASS:AVL_AVWindow]","Search"); attendre la recherche...

$text = WinGetText("[CLASS:AcrobatSDIWindow]", "") ; recupere partielement le texte de la fenetre
$Tab = StringSplit ($text,@LF) ; on transforme la chaine en tableau
;_ArrayDisplay($Tab, "text caché : ") ; Afficher le text cacher
MsgBox(0, "Text read was:", "imprimer la page : " &$Tab[4])

Re: [..] Recherche de fichier et impression.

Posté : dim. 25 juil. 2010 21:43
par Jerome
Je vais tester tous sa au boulot demain.

Mais sa me semble pas mal d'effectuer la recherche dans le fichier pdf grâce à ta méthode ayuckers.

Pour SagePourpre, mon problème actuel n'est pas de rechercher dans mon fichier pdf, je pense pouvoir gérer sa avec la méthode d'ayuckers, ou par un simple CTRL + F.

Le problème qui se pose est d'imprimer ma page, mais seulement ma page en cours (j'ai des fichiers pdf avec 7000 pages ...).
Le lien de Tlem explique comment imprimer, mais ne gère pas le paramètre qui m'interesse.

Sinon, j'utilise bien Adobe Acrobat 9.0.


Merci de votre aide et pour le complèment d'informations :).

Re: [..] Recherche de fichier et impression.

Posté : dim. 25 juil. 2010 23:35
par Tlem
Quelques recherches vous aurait amené à trouver ceci :
http://partners.adobe.com/public/develo ... meters.pdf

Et donc à déduire ceci : AcroRd32.exe /A "page=5=OpenActions" "D:\example.pdf" pour ouvrir le document à la bonne page.
Ensuite à vous de gérer l'impression par séquence de touche ou raccourcis.

Re: [..] Recherche de fichier et impression.

Posté : lun. 26 juil. 2010 11:19
par Jerome
Tlem a écrit :ceci : AcroRd32.exe /A "page=5=OpenActions" "D:\example.pdf" pour ouvrir le document à la bonne page.
Ensuite à vous de gérer l'impression par séquence de touche ou raccourcis.
Mon soucis n'est pas d'ouvrir mon document à la bonne page. Sa je le gère déjà.

Ce que je voudrait faire, c'est imprimer la page qui m'intéresse sans que cela apparaisse à l'écran (de faire CTRL+P puis de sélectionner l'impression d'une page en cours.). Donc de ne pas gérer ceci comme vous dites par une séquence de touche ou de raccourcis...

Mais je ne sait pas si cela est possible.



Jérôme

Re: [..] Recherche de fichier et impression.

Posté : lun. 26 juil. 2010 18:06
par Tlem
AutoIt ne peut rien pour vous dans ce cas précis, c'est du coté d'Acrobat qu'il faut regarder.
Si Acrobat ne permet pas l'impression d'une page sans afficher l'interface, comment voulez-vous que AutoIt en soit capable.
Peut être qu'en cherchant du coté des outils spécifiques à Acrobat, trouverez-vous un outil qui soit capable d'imprimer une page déterminée d'un document PDF et d'être scripté pour le faire.

Re: [..] Recherche de fichier et impression.

Posté : lun. 26 juil. 2010 20:31
par Jerome
Merci beaucoup de la réponse :)

A clore donc.



Jérôme.

Re: [R] Recherche de fichier et impression.

Posté : mar. 27 juil. 2010 19:44
par Tlem
Peut être que ceci, peut aider : http://www.accesspdf.com/pdftk/

J'ai vu ça du forum Anglais : http://www.autoitscript.com/forum/index ... pic=117709