Imprimer un document rtf (sans l'ouvrir) avec vb 2005

cs_Princesse Messages postés 14 Date d'inscription vendredi 31 mai 2002 Statut Membre Dernière intervention 1 décembre 2008 - 24 nov. 2008 à 21:17
cs_fauve Messages postés 661 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 mars 2011 - 26 nov. 2008 à 10:36
Bonjour,

Voilà, cela fait un petit moment que je cherche à imprimer un document rtf en cliquant sur l'un de mes controles de mon appli asp vb.net 2005. Et je n'y arrive pas. Avec l'objet printdocument, une impression est envoyée à l'imprimante mais il n'y a rien dessus.
Avec l'objet word.application, ca marche mais cela necessite que word soit installe sur la machine et ça ne convient pas à mon application car certain de mes utilisateurs n'ont pas ce logiciel.
 Je ne sais plus quoi faire et en plus ce travail est urgent. Je ne sais plus ou chercher... Comment designer le doc à imprimer pour printdocument (j'ai essayé avec documentname mais ce n'est pas cà).
Dois je me servir d'un objet "File"???.

Voici mes tests ci dessous

code num 1 qui marche mais convient pas (necessite word)




Dim WordApp, Doc



WordApp = CreateObject("Word.Application")



Doc = WordApp.documents.open("C:\\essai.rtf")



Doc.PrintOut()



Doc.Close()



WordApp.Quit()




et voici le code qui envoie une impression mais avec rien d'imprimer dessus (comment lui indiquer un doc à imprimer??)



Dim Doc As New PrintDocument



'Doc.DocumentName = "C:\\essai.rtf"

'Doc.Print()








Merci beaucoup d'avance

19 réponses

cs_Princesse Messages postés 14 Date d'inscription vendredi 31 mai 2002 Statut Membre Dernière intervention 1 décembre 2008
24 nov. 2008 à 21:19
PS: je n'ai pas besoin d'ouvrir ce document, il doit juste être imprimé
0
cs_Princesse Messages postés 14 Date d'inscription vendredi 31 mai 2002 Statut Membre Dernière intervention 1 décembre 2008
24 nov. 2008 à 21:45
C'est encore moi

J'ai également essayé avec un objet vb6 (après avoir installé un pack de compatiblité)
Mon code fait comme le printdocument, il imprime bien du text mais si j'essaie avec un fichier rtf ca ne marche pas.
Si quelqu'un a une solution avec ce composent vb6, je pourrai également m'en servir

voici mon code

'Dim pr As New PowerPacks.Printing.Compatibility.VB6.Printer 'Instanciation de l'imprimante par d‚faut'Dim pFont As New Drawing.Font("Arial", 14) 'Une nouvelle font

'pr.Font = pFont

'pr.Print("This text will print in 14 point ") 'Texte … imprimer

'pr.EndDoc() 'fin, on lance l'impression

Merci encore
0
Kevin.Ory Messages postés 840 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 7 janvier 2009 11
24 nov. 2008 à 23:03
Salut,

Sinon tu peux aussi utiliser la commande Shell Print, ce qui revient au même que de faire un bouton droit sur le fichier > imprimer. Dans ce cas, c'est le soft associé qui se charge de l'impression.

Suffit de trouver la clé définissant l'association de l'extension au programme dans la base de registre et d'y lire la valeur pour la commande Print.
0
cs_Princesse Messages postés 14 Date d'inscription vendredi 31 mai 2002 Statut Membre Dernière intervention 1 décembre 2008
25 nov. 2008 à 09:33
Bonjour,

Merci Kevin pour ta solution. C'est vrai que ce serait l'idéal car ça s'adapterait à différent poste utilisateur.
Sans vouloir abuser, est ce que tu aurais un ex de code pour trouver cette clef associé puis se servir du shell print.

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_fauve Messages postés 661 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 mars 2011 8
25 nov. 2008 à 10:32
Salut Princesse,

Voici un code qui te permettra d'imprimer un document sans l'ouvrir :

 Dim monProcess As New Process()
 ' Déclaration et Initialisation d'un nouveau Process

monProcess.StartInfo.FileName = "D:\MyFile.rtf" ' On définit le fichier sur lequel on veut opérer
monProcess.StartInfo.Verb = "Print"' On définit l'action voulue (ici, imprimer)
monProcess.StartInfo.CreateNoWindow = True ' On demande de ne rien afficher

monProcess.Start() ' On démarre le process (Impression du fichier)

++

Fauve
Pensez : Réponse Acceptée 
0
cs_Princesse Messages postés 14 Date d'inscription vendredi 31 mai 2002 Statut Membre Dernière intervention 1 décembre 2008
25 nov. 2008 à 10:51
Bonjour Fauve,

Tout d'abord merci pour ta réponse
J'ai testé ton code mais j'ai du oublié d'importer une classe ou quelquechose comme ca car j'ai eu cette erreur

Erreur de compilation

Description : Une erreur s'est produite lors de la compilation d'une ressource requise pour répondre à cette demande. Veuillez consulter ci-dessous les détails relatifs à l'erreur en question, puis modifier votre code source de manière appropriée.

Message d'erreur du compilateur: BC30002:
Type 'Process'non défini.
(j'ai visual studio 2005)

Est ce que tu aurais une idée stp?
0
cs_fauve Messages postés 661 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 mars 2011 8
25 nov. 2008 à 10:59
Oui effectivement, j'ai oublié de te dire qu'il faut que tu importes la classe

Imports
System.Diagnostics

Chez moi, elle est automatiquement rajoutée.

++

Fauve
Pensez : Réponse Acceptée 
0
cs_Princesse Messages postés 14 Date d'inscription vendredi 31 mai 2002 Statut Membre Dernière intervention 1 décembre 2008
25 nov. 2008 à 11:01
Re re,

Voilà, en fait j'ai modifié la syntaxe en:
Dim

monProcess
As
New Diagnostics.Process()

et le code fonctionne. Par contre j'obiens l'erreur suivante

"aucune application n'est associée au fichier spécifié pour cette opération"

J'ai bien mis wordpad comme appli d'ouverture pour les rtf...

En ts cas grace à votre aide, ca se rapproche bien du but!!!
0
cs_fauve Messages postés 661 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 mars 2011 8
25 nov. 2008 à 11:10
Je crois que le fichier rtf n'est pas tout à fait associer à Wordpad, voici le moyen de vérifier :

Depuis l'explorateur Windows ou le poste de travail, il est possible de
modifier, créer, supprimer, changer l'icône associé au type de
fichiers, ou restaurer le type de fichiers par défaut.
<li> Cliquer sur le menu "Outils" puis sur "Options des dossiers".
</li><li> Choisir l'onglet "Types de fichiers".
</li><li> La liste des extensions, le type de fichiers ainsi que le programme d'ouverture s'affichera.
</li><li> Sélectionner celle dont vous désirez apporter un changement.</li>

Il est possible que plusieurs applications soit associés à l'extension rtf

Tu cherches l'extension rtf et tu vérifies ci-celui est bien associé à Wordpad si c'est pas le cas, il faudra cliquer sur le bouton Modifier

Si en revanche, il y en a plusieurs, supprimes toutes les occurences de l'extension rtf qui n'est pas associé à Wordpad
0
cs_Princesse Messages postés 14 Date d'inscription vendredi 31 mai 2002 Statut Membre Dernière intervention 1 décembre 2008
25 nov. 2008 à 11:16
heu désolée pour la mise en forme du message précédent
0
cs_fauve Messages postés 661 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 mars 2011 8
25 nov. 2008 à 11:18
Quel message précédent

Pensez : Réponse Acceptée 
0
cs_Princesse Messages postés 14 Date d'inscription vendredi 31 mai 2002 Statut Membre Dernière intervention 1 décembre 2008
25 nov. 2008 à 11:22
heu c'est pas la que je voulais poster mon message, je croyais que ca aller poster à la suite de mes messages sur comment imprimer un rtf sans l'ouvrir.

Désolé, fausse manip surement
0
cs_fauve Messages postés 661 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 mars 2011 8
25 nov. 2008 à 11:24
Ah ok, sinon c'est bon le code fonctionne ou Windows dit toujours qu'aucun programme n'est associé au format rtf 

Pensez : Réponse Acceptée 
0
cs_Princesse Messages postés 14 Date d'inscription vendredi 31 mai 2002 Statut Membre Dernière intervention 1 décembre 2008
25 nov. 2008 à 11:47
J'ai vérifier comme tu me l'as indiqué et les fichiers rtf sont bien associés à wordpad (et seulement à wordpad).
J'ai fait le test avec des fichier doc qui st aussi associés à wordpad.
J'obtiens toujours la même erreur, je ne comprend pas pourquoi l'application n'est pas trouvée.
0
cs_Princesse Messages postés 14 Date d'inscription vendredi 31 mai 2002 Statut Membre Dernière intervention 1 décembre 2008
25 nov. 2008 à 11:49
J'ai vérifier comme tu me l'as indiqué et les fichiers rtf sont bien associés à wordpad (et seulement à wordpad).
J'ai fait le test avec des fichier doc qui st aussi associés à wordpad.
J'obtiens toujours la même erreur, je ne comprend pas pourquoi l'application n'est pas trouvée.
0
cs_fauve Messages postés 661 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 mars 2011 8
25 nov. 2008 à 13:06
Essaies de supprimer tous les références de l'extension rtf. Puis essaies d'ouvrir de nouveau un fichier d'extension rtf et Windows te demandera avec quel programme tu souhaites l'ouvrir et choisis WordPad (n'oublies de cocher l'option Toujours utiliser le programme sélectionné pour ouvrir ce type de fichier)

Normalement, le code devrait s'exécuter normalement, cette fois-ci, enfin j'espère.

++

Fauve
Pensez : Réponse Acceptée 
0
cs_Princesse Messages postés 14 Date d'inscription vendredi 31 mai 2002 Statut Membre Dernière intervention 1 décembre 2008
25 nov. 2008 à 14:00
J'essaierai ce soir car je n'ai pas le temps maintenant. J'espère que ca marchera.

Merci encore d'avoir pris de ton temps pour m'aider
0
cs_Princesse Messages postés 14 Date d'inscription vendredi 31 mai 2002 Statut Membre Dernière intervention 1 décembre 2008
25 nov. 2008 à 22:34
Super ca marche
Merci bc!!!!
0
cs_fauve Messages postés 661 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 mars 2011 8
26 nov. 2008 à 10:36
De rien,

Penses à valider les réponses qui t'ont aidé, çà pourra aider d'autres membres s'ils viennent à avoir le même problème que toi.

++

Fauve
Pensez : Réponse Acceptée 
0
Rejoignez-nous