begin process at 2012 05 29 06:57:53
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

Imprimer un fichier


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Imprimer un fichier

dimanche 11 juillet 2004 à 21:39:56 | Imprimer un fichier

AlexMAN

Membre Club
Bonjour,

Bon voila mon pb : je cherche a imprimer un fichier mais ne trouve aucun exemple fonctionnant sur ce site (mm la source de BruNews ne fonctionne pas :/), donc si kelkun se sent de faire un exemple concret et fonctionnel, jle remercie d'avance !

++

Alhexman
dimanche 11 juillet 2004 à 21:48:42 | Re : Imprimer un fichier

Arnotic

Administrateur CodeS-SourceS
Explique donc tes erreurs...

@+
Arnotic,
Admin CS, MVP Visual C++
dimanche 11 juillet 2004 à 21:52:52 | Re : Imprimer un fichier

AlexMAN

Membre Club
voila les fonctions fautives ! :

void PrintFile(HWND hwnd)
{
BOOL print = 0;
DOCINFO di;
RECT rect;
HDC hdcPrint = ObtPrintName(hwnd);

//GetDeviceCaps() permet d'obtenir des infos sur n'importe quel périphérique grâce à son HDC
//Resolution horizontale de l'imprimante
rect.right = GetDeviceCaps(hdcPrint, HORZRES);
//Resolution verticale de l'imprimante
rect.bottom = GetDeviceCaps(hdcPrint, VERTRES);

//"remplissage" de la structure contenant les infos du document à imprimer
di.cbSize = sizeof(DOCINFO); di.lpszDocName = szAppName;
di.fwType = 0; di.lpszDatatype = 0; di.lpszOutput = 0;

//Commence un "travail d'impression" ("a jop print" sur msdn)
if (StartDoc(hdcPrint, &di) > 0) {
//Prepare le driver de l'imprimante a accepter les données
if (StartPage(hdcPrint) > 0) {
//PrintScreen(GetDC(hwnd));
TextOut(hdcPrint, rect.right + 20, rect.bottom + 20, "coucou ma puce", 15 * cWidth);
if (EndPage(hdcPrint) > 0) {
print = 1;
}
EndDoc(hdcPrint);
}
}
//Si l'impression a eu lieu
if (print) return;
//Sinon...
MessageBox(hwnd, "Erreur lors de l'impression...", "Erreur", 0);
}

Et la fonction ki imprime sur le hdc de l'imprimante :

void PrintScreen(HDC hdc)
{
RECT rect;
char buf[256];
char *s, *c, *p;
int i = 0, j = 0, y = 0;

s = pszBuffer;
SendMessage(hwndPB, PBM_SETSTEP, (WPARAM)1, 0);
for (i = 0; i < nbrLine; ++i) {
//Pour ne pas monter trop haut
if (iVScrollPos < 0) iVScrollPos = 0;
//Pour ne pas descendre trop bas
else if (iVScrollPos > (nbrLine - 1)) iVScrollPos = nbrLine - 1;
p = buf;
//Change de ligne
y = cHeight * (i - iVScrollPos);
//Recherche de la premiere ocurrence de "\r\n" dans s
c = strstr(s, "\r\n");
//Copie s dans buf jusqu'a c
while (s < c) {
if (*s != '\t') *p++ = *s;
else { //Si on tombe sur un caractere '\t', on le remplace par 5 espaces
for (j = 0; j < 5; ++j) *p++ = ' ';
}
s++;
}
//Zero final et + 2 pour sauter "\r\n"
*p = 0; s += 2;
//Ecris la ligne a l'ecran
SetRect(&rect, 0, y, lstrlen(buf) * cWidth, y + cHeight);
DrawText(hdc, buf, lstrlen(buf), &rect, DT_LEFT);
}
}


Mais avec ca, ca marche pa, donc si tu vois une erreur, merci ;)
mercredi 14 juillet 2004 à 10:25:19 | Re : Imprimer un fichier

scolinks

Réponse acceptée !

<code>
PRINTDLG pd;

memset( &pd, 0, sizeof( pd ) );

pd.lStructSize = sizeof( pd );

/*
Si tu veux voir la dialogue de mise en page standard de windows alors enleve "PD_RETURNDEFAULT"

*/
pd.Flags = PD_RETURNDEFAULT | PD_RETURNDC;

if( !PrintDlg( &pd ) )
{
MessageBox( NULL, "PrintDlg( &pd )", "Erreur", MB_OK | MB_ICONERROR );
return -1;
}

DOCINFO di;
HDC hPrinter = pd.hDC;

// init
memset( &di, 0, sizeof( di ) );
di.cbSize = sizeof( di );
StartDoc( hPrinter, &di );
//commencer a imprimer la page
StartPage( hPrinter );

//pour couleur de texte
SetTextColor( hPrinter, 0x0000FF );

//printer Hello, World
TextOut( hPrinter, 100, 100, "Salut!", 7);

EndPage( hPrinter );

EndDoc( hPrinter );
DeleteDC( hPrinter );
</code>

J'espere que ça t'aide!

cout << "Salut je suis un debutant" << endl;
cout << ":)";
mercredi 14 juillet 2004 à 12:10:26 | Re : Imprimer un fichier

AlexMAN

Membre Club
merci pour ta reponse, j'avais trouvé la solution mais merci pour le PD_RETURNDEFAULT, je ne savais pas...jV poster une source ptet aujourd'hui sur l'impression..

Merci

++

Alhexman


Cette discussion est classée dans : fichier, exemple, imprimer


Répondre à ce message

Sujets en rapport avec ce message

imprimer un fichier html avec insertion d images... [ par nebucad ] Bon jour a tous et a toutesJe devai imprimer des fichiers word et un fichier html sous win qui a deuw images inserees.Je lance un ShellExecute de cett imprimer un fichier [ par gassman ] salutquel qu un peut me dire comment avec qt designer je fait pour faire un bouton pour appeller la boite de dialogue de KDE de l imprimante pour impr imprimer un fichier [ par gassman ] salutquel qu un peut me dire comment avec qt designer je fait pour faire un bouton pour appeller la boite de dialogue de KDE de l imprimante pour impr Imprimer un fichier depuis une application Visual C++ [ par ideschamps ] Bonjour à tous,Voilà je suis en train de développer une application en visual c++ dans laquelle je crée un fichier.Je voudrai pouvoir l'imprimer, aprè imprimer aveec des options sous C [ par cartouh ] Bonjour,je lance un fichier à imprimer sous mon appli avec la commande:ShellExecute(NULL, "print", "fichier.html", NULL, NULL, SW_HIDE);le second NULL Imprimer un tableau et un fichier txt [ par fred23 ] Bonjour,Je souhaiterais savoir comment je peux imprimer:un tableau[i][j] et un fichier texte de type toto.txtLe tout en C++.Merci.Fred23 imprimer un fichier word [ par nebucad ] 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 fichi Imprimer un fichier dxf sous linux [ par SabMoisin ] Bonjour!Je voudrais savoir comment programmer en c++ sous linux pour imprimer un fichier au format dxf.Je sais déjà imprimer en mode hpgl vu que l'imp EXcel i need you [ par ifren ] bonjourje voudrai creer une application sous vc++ et qui (en clickant par exemple sur un boutton) me crée un fichier .xls (Excel), en faisant remplir renommer fichier en toto-009 au lieu de toto-9 (exemple) [ par gege1024 ] tous est dans le titre , j'ai un prog qui tourne bien (je renomme en cascade des fichiers) mais je voudrais que l'incrementation se fasse de la forme


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,772 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales