[R] FilePrint : imprimer un texte enrichi

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

[R] FilePrint : imprimer un texte enrichi

#1

Message par aulus »

Bonjour,

Existe-t-il des solutions pour que le texte créé par les fonctions FileWrite et FileWriteLine, puis imprimé par la fonction FilePrint soit enrichi (mis en gras, italique, souligné, type et taille de la police, etc ...) autrement que par le passage dans un traitement texte où il serait enrichi manuellement par l'utilisateur ?

Je vous remercie.
Modifié en dernier par aulus le jeu. 27 juin 2013 20:22, modifié 1 fois.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..]FilePrint : imprimer un texte enrichi

#2

Message par mikell »

Une solution simple (?) est de formater le texte (police, couleur etc) au format html, genre

Code : Tout sélectionner

<p><center><font face="Comic Sans Ms" color=red size=+4><u>Test</u></font></center></p>
puis FileWrite le résultat dans un fichier htm et _FilePrint le htm
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [..]FilePrint : imprimer un texte enrichi

#3

Message par aulus »

Merci Mikell.

Avec la fonction FilePrint, l'impression du fichier html ne se lance pas. J'ai pris garde de débuter le fichier par <html><body> et de le terminer par </body></html>, de nommer le fichier avec l'extension .html

Par contre j'ai réussi à imprimer avec la fonction :

Code : Tout sélectionner

RunWait(@ComSpec & ' /c rundll32.exe ' & @SystemDir & '\mshtml.dll,PrintHTML "' & $filetoprint, @TempDir, @SW_HIDE)
Une petite chose qui m'enquiquine : l'en-tête ("Page 1 sur 1") et le pied de page ("file:///C:/autoit/programme/impression.html"). Si je pouvais les faire disparaître ! ...
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R]FilePrint : imprimer un texte enrichi

#4

Message par mikell »

Effectivement, sur mon pc _FilePrint ne marche pas non plus avec un fichier .html mais marche avec un .htm (faut pas me demander pourquoi...)
Par exemple ce code fonctionne très bien
► Afficher le texte
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [R] FilePrint : imprimer un texte enrichi

#5

Message par jguinch »

Salut.
J'arrive un peu après la guerre...
Perso j'ai déjà eu besoin d'imprimer des fichier HTML, j'ai utilisé l'UDF IE avec _IEAction($oIE, "printdefault")
On retombe sur le même problème d'entêtes et pieds de page, mais il suffit de les supprimer dans le script :
► Afficher le texte
L'avantage, c'est qu'on peut s'en servir pour imprimer des fichiers contenants des images par exemple (ou même des images toutes seules)
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [R] FilePrint : imprimer un texte enrichi

#6

Message par aulus »

@ Mikell

Chez moi, l'extension "htm" ne permet pas l'impression non plus.

@ jguinch

Merci pour votre code. Son exécution ouvre une fenêtre affichant le texte, mais l'impression ne se fait pas.

J'obtiens l'erreur :
>Running:(3.3.8.1):C:\Program Files (x86)\AutoIt3\autoit3.exe "C:\autoIt\imprimeIE.au3"
C:\Program Files (x86)\AutoIt3\Include\IE.au3 (560) : ==> The requested action with this object has failed.:
WEnd
WEnd^ ERROR
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [R] FilePrint : imprimer un texte enrichi

#7

Message par jguinch »

Bizarre...
Tu peux essayer avec $file = "file://" & @DesktopDir & "\test.html" pour le nom du fichier ?
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] FilePrint : imprimer un texte enrichi

#8

Message par mikell »

Ou alors il s'agit encore une fois d'une cagade de _IELoadWait
Dans ce cas tu peux essayer comme ça

Code : Tout sélectionner

$oIE = _IECreate($file, 0, 0, 0)
While $oIE.busy
  Sleep(100)
Wend
_IEAction($oIE, "printdefault")
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [R] FilePrint : imprimer un texte enrichi

#9

Message par aulus »

J'ai essayé vos dernières propositions. Mais rien ne s'imprime.

Erreur :
>Running:(3.3.8.1):C:\Program Files (x86)\AutoIt3\autoit3.exe "C:\autoIt\imprimeIE.au3"
C:\Program Files (x86)\AutoIt3\Include\IE.au3 (2488) : ==> The requested action with this object has failed.:
$o_object.execWB(6, 2)
$o_object.execWB(6, 2)^ ERROR
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] FilePrint : imprimer un texte enrichi

#10

Message par mikell »

Est-ce que tu as aussi une erreur avec _IEAction($oIE, "print") ?
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [R] FilePrint : imprimer un texte enrichi

#11

Message par aulus »

Bonjour Mikell,

Avec "print" j'obtiens l'erreur :
>Running:(3.3.8.1):C:\Program Files (x86)\AutoIt3\autoit3.exe "C:\autoIt\imprimeIE.au3"
C:\Program Files (x86)\AutoIt3\Include\IE.au3 (2481) : ==> The requested action with this object has failed.:
$o_object.document.parentwindow.Print()
$o_object.document^ ERROR
Observation peut-être utile : J'ai testé l'exemple de l'aide autoit (fonction IEcreate), et j'obtiens pas mieux :
>Running:(3.3.8.1):C:\Program Files (x86)\AutoIt3\autoit3.exe "C:\Program Files (x86)\AutoIt3\Examples\Helpfile\_IECreate.au3"
--> IE.au3 V2.4-0 Warning from function _IEAttach, $_IEStatus_NoMatch
--> IE.au3 V2.4-0 Warning from function _IEAttach, $_IEStatus_NoMatch
--> IE.au3 V2.4-0 Warning from function _IEGetObjByName, $_IEStatus_NoMatch (Name: sfmarquee, Index: 0)
C:\Program Files (x86)\AutoIt3\Examples\Helpfile\_IECreate.au3 (56) : ==> Variable must be of type "Object".:
MsgBox(0, "SourceForge Information", $oMarquee.innerText)
MsgBox(0, "SourceForge Information", $oMarquee^ ERROR
->08:10:51 AutoIT3.exe ended.rc:1
>Exit code: 1 Time: 31.609
Quant à la fonction _IEAction, je n'ai pas d'avertissements en lançant l'exemple de l'aide autoit.

----------------------------

J'ai ajouté la fonction _IEBodyWriteHTML , ... et là ça marche : impression sans en-tête ni pied de page !
#include <IE.au3>

$oIE = _IECreate()
Local $sHTML = "<h1>Salut tout le monde !</h1>"
_IEBodyWriteHTML($oIE, $sHTML)
_IEAction($oIE, "print")
Répondre