Imprimer un fichier word

nebucad Messages postés 4 Date d'inscription vendredi 10 janvier 2003 Statut Membre Dernière intervention 8 juin 2004 - 10 janv. 2003 à 12:29
cs_Gaelle Messages postés 41 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 7 mars 2004 - 11 janv. 2003 à 01:10
je ne sais pas si je suis dans le bon theme dsl si ce n est pas le cas.

bon pour le developpement d un logiciel pour une prof je dois imprimer un fichier word en gardant toutes les macros pour ses tableaux ses graphiques etc.... comment faire??
pour l instant je genere le fichier word et apres il faut ouvrir word pour l imprimer.... pas cool donc elle voudrait un petit bouton dans le logiciel qui lance l impression tout seul... et je ne trouve pas comment l'imprimer directement..

Merci d avance pour votre aide

nebucad

3 réponses

cs_vieuxLion Messages postés 455 Date d'inscription samedi 26 octobre 2002 Statut Membre Dernière intervention 6 avril 2004 8
10 janv. 2003 à 13:13
je te renvoie la même réponse qu'au message ShellExecute

La vraie méthode est de faire un client COM... mais c'est compliqué

Il suffit de lander un CreateProcess en passant en ligne de commande :
<chemin de winword> /P nom_du_fichier
voici un exemple

// la manière officielle de lancer un prog est par CreateProcess
// voici une adaptation de l'exemple dans la Doc MSDN :

#include<windows.h>
#include<string>
#include
using namespace std;

void main()
{
char prog[250];
cout << "donner le prog : ";
//par exemple : write /p c:\monfichier.wri
cin.getline(prog,250);

STARTUPINFO si;
PROCESS_INFORMATION pi;

ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );

// Start the child process.
if( !CreateProcess( NULL, // No module name (use command line).
(LPSTR)prog, // Command line.
NULL, // Process handle not inheritable.
NULL, // Thread handle not inheritable.
FALSE, // Set handle inheritance to FALSE.
0, // No creation flags.
NULL, // Use parent's environment block.
NULL, // Use parent's starting directory.
&si, // Pointer to STARTUPINFO structure.
&pi ) // Pointer to PROCESS_INFORMATION structure.
)
{
cout << "CreateProcess rate."<<endl;
}

// Wait until child process exits.
WaitForSingleObject( pi.hProcess, INFINITE );

// Close process and thread handles.
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
}
0
nebucad Messages postés 4 Date d'inscription vendredi 10 janvier 2003 Statut Membre Dernière intervention 8 juin 2004
10 janv. 2003 à 16:17
merci vieuxLion je me doutai que ça allait etre pas mal dur mais la ouuuu.... tu me sors une epine du pied :)
je vais le mettre en application je te tiens au courant!
nebucad
0
cs_Gaelle Messages postés 41 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 7 mars 2004
11 janv. 2003 à 01:10
Je ne comprend pas trop pourquoi il faut que tu utilises les objets COM quand la méthode ShellExecute fait tout pour toi.

A tout hasard voici la syntaxe : ShellExecute(NULL, "print", "fichier.doc", NULL, NULL, SW_NORMAL);
ou SW_HIDE si tu ne veux pas voir l'ouverture/fermeture de Word pour l'impression.

Gaëlle
0
Rejoignez-nous