Page 1 sur 1
[R] Manipulation d'un ObjCreate("AcroPDF.PDF.1") nommé $oPD
Posté : jeu. 19 mars 2015 16:22
par bolylob
Bonjour à tous,
Je suis en train de développer une routine utilisant un fichier PDF(GUI_ActiveX) , à une page et à une position précise fonction de paramètres en entrée.
Je me heurte à un quelques problèmes:
-Je n'arrives pas à faire varier la taille du PDF en même temps que la fenêtre windows (GUI).
le "GUICtrlSetResizing($GUI_ActiveX,$GUI_DOCKAUTO)" n'est pas fonctionnel.
-Et j'ai essayé "$oPDF.setviewrect(100,100,100,100)" mais le PDF semble ne pas vouloir se décrocher du haut de la page.
-Il me faut aussi récupérer la position et le zoom lorsque je le désire dans le but de le restituer lors une autre consultation.
Voici mon code:
Code : Tout sélectionner
#include <GUIConstants.au3>
#NoTrayIcon
Dim $File
$File="C:\Users\MrMachin\Desktop\trucs.pdf"
$oPDF = ObjCreate("AcroPDF.PDF.1");
GuiCreate("PDF Object", 802, 590,(@DesktopWidth-802)/2, (@DesktopHeight-590)/2,$WS_SIZEBOX )
$oPDF.src=$File
$oPDF.setViewRect(100,100,100,100) ;pour exemple
$GUI_ActiveX = GUICtrlCreateObj ($oPDF, 0, 0 , 790 , 560)
GUICtrlSetStyle ( $GUI_ActiveX, $WS_VISIBLE )
GuiSetState()
While 1
$msg = GuiGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $GUI_EVENT_RESIZED
GUICtrlSetResizing($GUI_ActiveX,$GUI_DOCKAUTO) ;$GUI_DOCKRIGHT $GUI_DOCKAUTO $GUI_DOCKBORDERS
EndSelect
WEnd
$oPDF = ""
$GUIActiveX = ""
Exit
Merci d'avance pour les idées; je posterais le résultat.
Re: [..] Manipulation d'un ObjCreate("AcroPDF.PDF.1") nommé
Posté : jeu. 19 mars 2015 16:26
par orax
C'était presque ça sauf qu'il faut mettre le GUICtrlSetResizing avant.
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstants.au3>
#NoTrayIcon
Dim $File
$File = "C:\Users\MrMachin\Desktop\trucs.pdf"
$oPDF = ObjCreate("AcroPDF.PDF.1");
GUICreate("PDF Object", 802, 590, (@DesktopWidth - 802) / 2, (@DesktopHeight - 590) / 2, $WS_SIZEBOX)
$oPDF.src = $File
$oPDF.setViewRect(100, 100, 100, 100) ;pour exemple
$GUI_ActiveX = GUICtrlCreateObj($oPDF, 0, 0, 790, 560)
; -1 = dernier contrôle créé (soit $GUI_ActiveX)
GUICtrlSetResizing(-1, $GUI_DOCKAUTO) ;$GUI_DOCKRIGHT $GUI_DOCKAUTO $GUI_DOCKBORDERS
GUICtrlSetStyle($GUI_ActiveX, $WS_VISIBLE)
GUISetState()
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
EndSelect
WEnd
$oPDF = ""
$GUIActiveX = ""
[R] Manipulation d'un ObjCreate("AcroPDF.PDF.1") nommé
Posté : jeu. 19 mars 2015 17:03
par bolylob
Merci pour la réponse rapide!
C'est une partie du problème car le pdf reste à la même taille, même si le controle, lui, se redimensionne bien, la zone grise s'agrandie...
La réponse est peut-être dans la doc Adobe, mais je ne trouve pas...
Re: [..] Manipulation d'un ObjCreate("AcroPDF.PDF.1") nommé
Posté : jeu. 19 mars 2015 18:03
par orax
Désolé je n'avais pas remarqué... Mais j'ai trouvé cette discussion où le même problème est évoqué :
http://www.autoitscript.com/forum/topic ... ntry770488
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Test Webbrowser", 400, 300, 400, 300, _
BitOR($GUI_SS_DEFAULT_GUI, $WS_SYSMENU, $WS_SIZEBOX, $WS_MAXIMIZEBOX), $WS_EX_COMPOSITED)
$Obj = ObjCreate("Shell.Explorer.2")
$browser = GUICtrlCreateObj($Obj, 0, 0, 400, 300)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT)
$Obj.Navigate("C:\Users\MrMachin\Desktop\trucs.pdf")
GUISetState()
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
EndSelect
WEnd
Ça affiche bien le PDF et le redimensionne sauf qu'il n'est pas ouvert avec Adobe Reader. Est-ce que cette alternative peut convenir ?
Re: [..] Manipulation d'un ObjCreate("AcroPDF.PDF.1") nommé
Posté : jeu. 19 mars 2015 22:17
par bolylob
Bonsoir,
Non çà n'est pas ce que je veux...
L'explorateur ne peux pas convenir avec windows 8 et plus.
Une autre idée?
Re: [..] Manipulation d'un ObjCreate("AcroPDF.PDF.1") nommé
Posté : jeu. 19 mars 2015 22:53
par orax
J'ai enlevé $WS_EX_COMPOSITED qui faisait clignoter.
Code : Tout sélectionner
$Form1 = GUICreate("Test Webbrowser", 400, 300, 400, 300, _
BitOR($GUI_SS_DEFAULT_GUI, $WS_SYSMENU, $WS_SIZEBOX, $WS_MAXIMIZEBOX))
Il est bien ouvert avec Adobe Reader en fait. J'ai Adobe Reader comme visionneuse par défaut donc je suppose que c'est pour cette raison qu'il l'ouvre avec. Je pensais que ce n'était pas le cas car la barre d'outils n'était pas affichée mais une fois affichée voilà ce que j'ai (testé sur Win 8.1) :
Re: [..] Manipulation d'un ObjCreate("AcroPDF.PDF.1") nommé
Posté : ven. 20 mars 2015 13:28
par jguinch
J'ai peut-être trouvé un moyen :
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstants.au3>
#include <Array.au3>
#include <WinAPI.au3>
#NoTrayIcon
Dim $File
$File="C:\Users\MrMachin\Desktop\trucs.pdf"
$oPDF = ObjCreate("AcroPDF.PDF.1");
$gui = GuiCreate("PDF Object", 802, 590,(@DesktopWidth-802)/2, (@DesktopHeight-590)/2,$WS_SIZEBOX )
$oPDF.src=$File
$oPDF.setViewRect(100,100,100,100) ;pour exemple
$GUI_ActiveX = GUICtrlCreateObj ($oPDF, 0, 0 , 790 , 560)
GUICtrlSetStyle ( $GUI_ActiveX, $WS_VISIBLE )
GuiSetState()
GUICtrlSetResizing($GUI_ActiveX,$GUI_DOCKAUTO)
While 1
$msg = GuiGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
ExitLoop
Case $GUI_EVENT_RESIZED
$aATL = StringRegExp(WinGetClassList($gui), "ATL\N+", 1)
If IsArray($aATL) Then
$sATL = $aATL[0]
$aPos = ControlGetPos($gui, "", "[CLASS:" & $sATL & "; INSTANCE:1]")
If IsArray($aPos) Then ControlMove($gui, "", "[CLASS:Static; INSTANCE:1]", $aPos[0], $aPos[1], $aPos[2], $aPos[3])
EndIf
EndSwitch
WEnd
Re: [..] Manipulation d'un ObjCreate("AcroPDF.PDF.1") nommé
Posté : sam. 21 mars 2015 10:09
par bolylob
Super, Ça marche! Où puis-je trouver la doc? celà permettrait sans doute d'autres choses intéressantes...
Re: [..] Manipulation d'un ObjCreate("AcroPDF.PDF.1") nommé
Posté : dim. 22 mars 2015 11:13
par jguinch
A vrai dire, j'ai fait sans doc...
J'ai juste listé les différents contrôles présents dans la fenêtre (avec Control Viewer) et testé le redimensionnement de quelques-uns, et voilou.
Re: [..] Manipulation d'un ObjCreate("AcroPDF.PDF.1") nommé
Posté : dim. 22 mars 2015 11:30
par mikell
Re: [..] Manipulation d'un ObjCreate("AcroPDF.PDF.1") nommé
Posté : dim. 22 mars 2015 13:45
par jguinch
Merci Mikell. Perso, je trouve que les méthodes ne sont pas très nombreuses
Par rapport au redimensionnement automatique, j'ai rien trouvé qui spécifie qu'il faut redimensionner le contrôle
Static, ça mériterait d'être un peu documenté...
Re: [..] Manipulation d'un ObjCreate("AcroPDF.PDF.1") nommé
Posté : dim. 22 mars 2015 13:59
par bolylob
En tout cas, merci jguinch.
Re: [..] Manipulation d'un ObjCreate("AcroPDF.PDF.1") nommé
Posté : lun. 23 mars 2015 07:58
par jguinch
Y'a pas de quoi
Merci de passer le titre du premier message en [R] si le problème est résolu
[R] Manipulation d'un ObjCreate("AcroPDF.PDF.1") nommé $oPD
Posté : mer. 25 mars 2015 21:17
par bolylob
C'est good!
Re: [..] Manipulation d'un ObjCreate("AcroPDF.PDF.1") nommé
Posté : jeu. 26 mars 2015 08:25
par jguinch
C'était le titre du
premier message qu'il fallait modifier
Je l'ai fait pour celui-là