Page 1 sur 1

[R] UDF RichEdit et impression

Posté : mer. 09 mars 2016 17:54
par GMH
Bonjour,

J'ai trouvé l'UDF "RichEdit" à l'adresse :

http://www.autoitscript.fr/forum/viewto ... que#p43031

Cet UDF peut-il être utilisé pour l'impression ?

Je vous remercie de vos précisions à ce sujet.

Re: [..] UDF RichEdit et impression

Posté : mer. 09 mars 2016 23:38
par Tlem
Bonsoir.
Non cet UDF n'est pas prévu pour ça.

Re: [..] UDF RichEdit et impression

Posté : jeu. 10 mars 2016 09:18
par GMH
Merci,

Existe-t-il des fonctions pour améliorer la présentation de l'impression ?

Re: [..] UDF RichEdit et impression

Posté : jeu. 10 mars 2016 09:51
par Tlem
Je pense que vous prenez le problème dans le mauvais sens.
C'est pas sur l'impression qie vous devez jouer, mais sur le document de base.
L'UDF dont vous avez parlé, vous permettra de mettre en forme votre document, ensuite vous devrez utiliser autre chose pour sauvegarder/imprimer votre document.

Envoyé de mon appareil mobile avec Tapatalk.

Re: [..] UDF RichEdit et impression

Posté : jeu. 10 mars 2016 12:19
par GMH
L'UDF ne me semble pas mettre en forme un document. Il me semble qu'il met en forme des contrôles de type Label dans une GUI.
Est-ce que je me trompe ?

Re: [..] UDF RichEdit et impression

Posté : jeu. 10 mars 2016 14:19
par Tlem
Oui c'est bien ce que j'ai essayé de vous faire comprendre...
Le Contrôle RichEdit contiendra le texte mis en forme et devra être sauvegardé comme document... (RTF par exemple).
Ensuite vous pourrez gérer l'impression. ;)


Envoyé de mon appareil mobile avec Tapatalk.

Re: [..] UDF RichEdit et impression

Posté : jeu. 10 mars 2016 20:50
par GMH
Je ne parviens pas à tirer parti de l'UDF RichEdit pour produire un document imprimable formaté.

Je me rabats sur la création d'un fichier HTML, que j'imprime via mon navigateur :
...
FileWrite($file,"<html><body><br>")
FileWrite($file,"<center><h1>" & $monTitre & "</h1></center><br><br>")
etc.
...
Global $oIE = _IECreate($monFichier) ; Ouvre Internet Explorer affichant le fichier "monFichier.html"
Sleep(3000)
send("^p") ; Ouvre la fenêtre "Imprimer" d'Internet Explorer
Sleep(3000)
send("!i") ; Lance l'imprimante
Merci pour l'attention que vous avez portée à ma question.

Re: [R] UDF RichEdit et impression

Posté : ven. 11 mars 2016 15:11
par walkson
Bonjour,
En reprenant l'exemple de GELDROC (http://www.autoitscript.fr/forum/viewto ... que#p43031)

Code : Tout sélectionner

#cs ----------------------------------------------------------------------------

 AutoIt Version : 3.3.6.0
 Auteur:         GELDROC

 Fonction du Script :
	Modèle de Script AutoIt.

#ce ----------------------------------------------------------------------------

; Début du script - Ajouter votre code ci-dessous.
#include <WindowsConstants.au3>
#include <SpecialRichEdit.au3>
#include <Array.au3>
OnAutoItExitRegister("_Exit")
Global $hGui, $aSpecialRichEdit


$hGui = GUICreate("Exemple de l'UDF SpecialRichEdit.au3 By @GELDROC", 600, 480, -1, -1, -1, $WS_EX_TOOLWINDOW)


$SpecialRichEdit = _SpecialRichEdit_Create($hGui, 1, 203, 598, 200, _
	BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL, $ES_READONLY), 0x00000100)
If @error Then MsgBox(0, "Creation" , "Erreur:" &  @error & @CRLF & @extended)
$SpecialRichEdit0= _SpecialRichEdit_Create($hGui, 1, 1, 598, 200, _
	BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL, $ES_READONLY), 0x00000100)


GUISetState()

_SpecialRichEdit_AddTexte($SpecialRichEdit0, "Normal ")
If @error Then MsgBox(0, "Par default",  "Erreur:" &  @error & @CRLF & @extended)

_SpecialRichEdit_AddTexte($SpecialRichEdit0, "Taille ", -1, -1, -1, 20)
If @error Then MsgBox(0, "Par default",  "Erreur:" &  @error & @CRLF & @extended)

_SpecialRichEdit_AddTexte($SpecialRichEdit0, "Style" , -1, -1, "Magneto", 20)
If @error Then MsgBox(0, "Par default",  "Erreur:" &  @error & @CRLF & @extended)

_SpecialRichEdit_AddTexte($SpecialRichEdit0, "Couleur" & @CRLF, 0xFF0000, 0x00FF00, -1, 10)
If @error Then MsgBox(0, "Par default",  "Erreur:" &  @error & @CRLF & @extended)

_SpecialRichEdit_AddTexte($SpecialRichEdit0, "Gras ", -1, -1, -1, 20, $SpecialRichEdit_Gras)
If @error Then MsgBox(0, "Par default",  "Erreur:" &  @error & @CRLF & @extended)

_SpecialRichEdit_AddTexte($SpecialRichEdit0, "Italique ", -1, -1, -1, 20, $SpecialRichEdit_Italique)
If @error Then MsgBox(0, "Par default",  "Erreur:" &  @error & @CRLF & @extended)

_SpecialRichEdit_AddTexte($SpecialRichEdit0, "SousLigner ", -1, -1, -1, 20, $SpecialRichEdit_SousLigner)
If @error Then MsgBox(0, "Par default",  "Erreur:" &  @error & @CRLF & @extended)

_SpecialRichEdit_AddTexte($SpecialRichEdit0, "Tous .", -1, -1, -1, 20, $SpecialRichEdit_Gras & $SpecialRichEdit_Italique & $SpecialRichEdit_SousLigner)
If @error Then MsgBox(0, "Par default",  "Erreur:" &  @error & @CRLF & @extended)


;Sleep(1000)
_SpecialRichEdit_AddTexte($SpecialRichEdit, "Le texte sera effacer dans 2 seconde ..." & @CRLF, 0xFF0000, 0x00FF00, -1, 20)
If @error Then MsgBox(0, "Par default",  "Erreur:" &  @error & @CRLF & @extended)
;Sleep(2000)
_SpecialRichEdit_EmpyText($SpecialRichEdit)
If @error Then MsgBox(0, "Par default",  "Erreur:" &  @error & @CRLF & @extended)




;Sleep(1000)
_SpecialRichEdit_AddTexte($SpecialRichEdit, "A gauche" & @CRLF, -1, -1, -1, 20, $SpecialRichEdit_Left)
_SpecialRichEdit_AddTexte($SpecialRichEdit, "Centré" & @CRLF, -1, -1, -1, 20, $SpecialRichEdit_Center)
_SpecialRichEdit_AddTexte($SpecialRichEdit, "A Droite" & @CRLF, -1, -1, -1, 20, $SpecialRichEdit_Ridth)
_SpecialRichEdit_AddTexte($SpecialRichEdit, "Normal" & @CRLF, -1, -1, -1, 20)
_RichEdit_AddBitmap($SpecialRichEdit, @ScriptDir & "\Image.bmp", -1, -1, '\qc')

;------------------------------- Sauve et imprime ------------------------------------------------------
_GUICtrlRichEdit_StreamToFile($SpecialRichEdit0[0], @DesktopDir & "\gcre.rtf")
ShellExecuteWait(@DesktopDir & "\gcre.rtf","",@WorkingDir,"print",@SW_HIDE)
_GUICtrlRichEdit_StreamToFile($SpecialRichEdit[0], @DesktopDir & "\gcre1.rtf")
ShellExecuteWait(@DesktopDir & "\gcre1.rtf","",@WorkingDir,"print",@SW_HIDE)
;-------------------------------------------------------------------------------------
While 1
	If GUIGetMsg() = -3 Then Exit
WEnd



Func _Exit()
	_SpecialRichEdit_Destroy($SpecialRichEdit)
	_SpecialRichEdit_Destroy($SpecialRichEdit0)
	If @error Then MsgBox(0, @error, @extended)
	Exit
EndFunc   ;==>_Exit
C'est quand même mieux que des Send() :wink:

Re: [R] UDF RichEdit et impression

Posté : sam. 12 mars 2016 09:55
par GMH
Bonjour et merci pour ce code qui fait le lien entre le code RichEdit et l'impression, lien que j'étais incapable de faire.

Votre exemple :

1. crée la GUI
2. ouvre Word
3. crée un fichier PDF
4. ouvre mon lecteur PDF
5. imprime

Le nombre d'étapes est plus grand qu'avec la méthode d'impression via un fichier HTML. Est-ce vraiment avantageux d'utiliser l'UDF RichEdit ?

Re: [R] UDF RichEdit et impression

Posté : sam. 12 mars 2016 15:39
par walkson
Bonjour,
Désolé mais j'ai du mal à vous suivre. Dans le script, je n'utilise pas word ni de PDF.
Je n'ai rajouté que deux lignes. La première récupère les données en RTF et la seconde lance l'impression

Code : Tout sélectionner

_GUICtrlRichEdit_StreamToFile($SpecialRichEdit0[0], @DesktopDir & "\gcre.rtf")
ShellExecuteWait(@DesktopDir & "\gcre.rtf","",@WorkingDir,"print",@SW_HIDE)
$SpecialRichEdit0[0] étant le handle du _SpecialRichEdit_Create($hGui, 1, 1, 598, 200)
Est-ce vraiment avantageux d'utiliser l'UDF RichEdit ?
Ben tout dépend ce que vous voulez faire ? Si c'est pour une présentation d'une GUI, RichEdit peut être utile. Si c'est pour publier un document, HTML est plus simple... D'autant qu'il est inutile d'utiliser _IECreate($monFichier) pour imprimer. un simple ShellExecuteWait(@DesktopDir & "\mondoc.html","",@WorkingDir,"print",@SW_HIDE) fait l'affaire.
Mais, bon, c'est un simple avis :D

Re: [R] UDF RichEdit et impression

Posté : sam. 12 mars 2016 17:59
par GMH
Curieusement, l'exemple enregistre un fichier .RTF sur mon bureau, puis il ouvre WORD, puis il lance mon lecteur PDF pour lire le fichier... tout ça est en effet mystérieux !

En tout cas, je retiens la fonction ShellExecuteWait(@DesktopDir & "\mondoc.html","",@WorkingDir,"print",@SW_HIDE) qui fait l'économie des Send().

Je vous remercie de votre intervention.