[R] Garder la page courante d'un PDF
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
- GhostLine
- Niveau 7

- Messages : 342
- Enregistré le : jeu. 12 mars 2009 15:28
- Localisation : Paris
- Status : Hors ligne
[R] Garder la page courante d'un PDF
Salut à tous !
Je viens de terminer pour mon boulot un outil de suivi de préparation de matériel à la demande (au call, pour les spécialistes).
Mais j'ai un problème : lorsqu'un call est choisi dans la liste, il est assigné à l'opérateur connecté sur la machine cliente, et il s'affiche la documentation associée à ce call (un PDF, typiquement). Si jamais l'utilisateur s'affecte un second call (le système est prévu pour), il "perd" sa page dans le premier call et doit redérouler tout le document ...
D'où ma question : existe-t-il un moyen de conserver le n° de la page active d'un PDF affiché à l'écran, et de remettre le document à cette page au prochain affichage ?
Je viens de terminer pour mon boulot un outil de suivi de préparation de matériel à la demande (au call, pour les spécialistes).
Mais j'ai un problème : lorsqu'un call est choisi dans la liste, il est assigné à l'opérateur connecté sur la machine cliente, et il s'affiche la documentation associée à ce call (un PDF, typiquement). Si jamais l'utilisateur s'affecte un second call (le système est prévu pour), il "perd" sa page dans le premier call et doit redérouler tout le document ...
D'où ma question : existe-t-il un moyen de conserver le n° de la page active d'un PDF affiché à l'écran, et de remettre le document à cette page au prochain affichage ?
Modifié en dernier par GhostLine le mar. 28 mai 2013 15:05, modifié 1 fois.
Re: [..] Garder la page courante d'un PDF
Salut.
Ce serait bien que tu précise ce que tu utilises pour lire les PDF ?
Dans Adobe Reader (dans le 10 en tout cas), il y a une option qui est "Restaurer les derniers paramètres affichés lors de la réouverture du document". Ca devrait suffire ?
Si besoin, ce paramètre se trouve dans la base de registre dans HKEY_CURRENT_USER\Software\Adobe\Acrobat Reader\10.0 : RememberedViews (2 = coché, 1 = décoché)
Sinon pour ouvrir un PDF sur une page donnée, c'est possible (avec Adobe Reader et Sumatra en tout cas)
Adobe Reader :
To open a PDF at page 100 the follow works
<path to Adobe Reader> /A "page=100" "<Path To PDF file>"
Sumatra :
-page $numpage Ouvre le document à la page spécifiée
Ce serait bien que tu précise ce que tu utilises pour lire les PDF ?
Dans Adobe Reader (dans le 10 en tout cas), il y a une option qui est "Restaurer les derniers paramètres affichés lors de la réouverture du document". Ca devrait suffire ?
Si besoin, ce paramètre se trouve dans la base de registre dans HKEY_CURRENT_USER\Software\Adobe\Acrobat Reader\10.0 : RememberedViews (2 = coché, 1 = décoché)
Sinon pour ouvrir un PDF sur une page donnée, c'est possible (avec Adobe Reader et Sumatra en tout cas)
Adobe Reader :
To open a PDF at page 100 the follow works
<path to Adobe Reader> /A "page=100" "<Path To PDF file>"
Sumatra :
-page $numpage Ouvre le document à la page spécifiée
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
- GhostLine
- Niveau 7

- Messages : 342
- Enregistré le : jeu. 12 mars 2009 15:28
- Localisation : Paris
- Status : Hors ligne
Re: [..] Garder la page courante d'un PDF
Au temps pour moi !
J'ai une petite fonction qui me permet d'afficher mon PDF dans une partie de mon interface, ci après :
J'ai une petite fonction qui me permet d'afficher mon PDF dans une partie de mon interface, ci après :
Code : Tout sélectionner
Func _affpdf($fichier_pdf)
Global $oPDF = ObjCreate("AcroPDF.PDF.1");
$oPDF.src = $fichier_pdf
$GUI_ActiveX = GUICtrlCreateObj($oPDF, 0, 0, 1024, 721)
EndFunc ;==>_affpdfRe: [..] Garder la page courante d'un PDF
Je ne suis pas trop sûr de mon coup, mais tu peux essayer de récupérer le numéro de la page courante avec :
Et pour aller à un numéro de page :
$oPDF.setCurrentPage(10) ; Aller à la page 10
Code : Tout sélectionner
$pageNum = $oPDF.GetPageNum()
MsgBox(0, "GetPageNum", "Numéro de la page " & $pageNum + 1 )$oPDF.setCurrentPage(10) ; Aller à la page 10
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
- GhostLine
- Niveau 7

- Messages : 342
- Enregistré le : jeu. 12 mars 2009 15:28
- Localisation : Paris
- Status : Hors ligne
Re: [..] Garder la page courante d'un PDF
Tout d'abord, merci pour ta réponse !
Donc : SetCurrentPage fonctionne sans souci, par contre, GetPageNum m'envoie bouler :
Une idée ?
Donc : SetCurrentPage fonctionne sans souci, par contre, GetPageNum m'envoie bouler :
Code : Tout sélectionner
C:\Program Files (x86)\SinNet\SinCli\interface.au3 (319) : ==> The requested action with this object has failed.:
Global $pageNum = $oPDF.GetPageNum()
Global $pageNum = $oPDF.GetPageNum()^ ERRORRe: [..] Garder la page courante d'un PDF
Tu peux essayer avec l'objet AcroExch.App à la place de AcroPDF.PDF.1 ?
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
- GhostLine
- Niveau 7

- Messages : 342
- Enregistré le : jeu. 12 mars 2009 15:28
- Localisation : Paris
- Status : Hors ligne
Re: [..] Garder la page courante d'un PDF
Si je fais ce changement, plus rien ne fonctionne, même pas l'affichage :
Code : Tout sélectionner
C:\Program Files (x86)\MonoChrome Softworks\SinNet\SinCli\interface.au3 (314) : ==> Variable must be of type "Object".:
$oPDF.src = $fichier_pdf
$oPDF^ ERROR
->08:38:59 AutoIT3.exe ended.rc:1
>Exit code: 1 Time: 6.296Re: [..] Garder la page courante d'un PDF
Peut être AcroExch.App.1
Sinon, tu utilises quoi comme version Adobe ?
Edit :
AcroExch c'est si tu as Acrobat. Je suppose que tu n'a que le Reader ?
Sinon, tu utilises quoi comme version Adobe ?
Edit :
AcroExch c'est si tu as Acrobat. Je suppose que tu n'a que le Reader ?
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
- GhostLine
- Niveau 7

- Messages : 342
- Enregistré le : jeu. 12 mars 2009 15:28
- Localisation : Paris
- Status : Hors ligne
Re: [..] Garder la page courante d'un PDF
Adobe Reader X, m'sieur ! Version corporate, non remplaçable.
Re: [..] Garder la page courante d'un PDF
Les objets COM d'Adobe Reader ne permettront pas à priori de récupérer le numéro de la page courante.
Par contre, j'y arrive simplement comme ça :
A tester dans ton environnement, ça peut le faire...
Par contre, j'y arrive simplement comme ça :
Code : Tout sélectionner
AutoItSetOption("WinDetectHiddenText",1)
$text = WinGetText ("Ma GUI")
$split = StringSplit($text, @CRLF)
MsgBox(0, "Numéro de page", $split[19])Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
- GhostLine
- Niveau 7

- Messages : 342
- Enregistré le : jeu. 12 mars 2009 15:28
- Localisation : Paris
- Status : Hors ligne
Re: [..] Garder la page courante d'un PDF
Ca fonctionne ! Incroyable, le nombre d'infos planquées dans ce soft ... le champs n'est pas le bon dans mon cas, mais une fois $split visualisé, facile de mettre la bonne valeur dans $split[xx].
Re: [R] Garder la page courante d'un PDF
C'est bien ce que je craignais : la position dans $split n'est pas toujours la même (peut-être en fonction du PDF ou de la version du Reader - pour ma part 11.0.3)
Il faudra donc faire attention à bien lire au bon endroit (tester sur plusieurs machines), ou alors trouver le moyen de cherche au bon endroit.
En tout cas c'est déjà une bonne chose...
Il faudra donc faire attention à bien lire au bon endroit (tester sur plusieurs machines), ou alors trouver le moyen de cherche au bon endroit.
En tout cas c'est déjà une bonne chose...
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !

