[R] UDF RichEdit et impression

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

[R] UDF RichEdit et impression

#1

Message 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.
Modifié en dernier par GMH le jeu. 10 mars 2016 20:50, modifié 1 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] UDF RichEdit et impression

#2

Message par Tlem »

Bonsoir.
Non cet UDF n'est pas prévu pour ça.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

Re: [..] UDF RichEdit et impression

#3

Message par GMH »

Merci,

Existe-t-il des fonctions pour améliorer la présentation de l'impression ?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] UDF RichEdit et impression

#4

Message 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.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

Re: [..] UDF RichEdit et impression

#5

Message 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 ?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] UDF RichEdit et impression

#6

Message 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.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

Re: [..] UDF RichEdit et impression

#7

Message 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.
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1037
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: [R] UDF RichEdit et impression

#8

Message 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:
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

Re: [R] UDF RichEdit et impression

#9

Message 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 ?
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1037
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: [R] UDF RichEdit et impression

#10

Message 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
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

Re: [R] UDF RichEdit et impression

#11

Message 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.
Répondre