Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2847 connectés 

  FORUM HardWare.fr
  Programmation

  probleme pour imprimer

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

probleme pour imprimer

n°118126
KisskooOoo​l
Posté le 27-03-2002 à 13:57:05  profilanswer
 

voila, g ce code fournit avec dev-c++ :
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
 
 
 
int main ()
{
     
 PRINTDLG pd;
 DOCINFO  di;
 char*  szMessage;
    char        txt[1024];
    LPSIZE        taille;
 
     
     
        memset (&pd, 0, sizeof(PRINTDLG));
 memset (&di, 0, sizeof(DOCINFO));
 
 di.cbSize = sizeof(DOCINFO);
 di.lpszDocName = "Test";
 
 pd.lStructSize = sizeof(PRINTDLG);
 pd.Flags = PD_PAGENUMS | PD_RETURNDC;
 pd.nFromPage = 1;
 pd.nToPage = 1;
 pd.nMinPage = 1;
 pd.nMaxPage = 1;
 
 szMessage = 0;
 
 if (PrintDlg (&pd))
 {
  if (pd.hDC)
  {
   if (StartDoc (pd.hDC, &di) != SP_ERROR)
   {
                 
 
    StartPage (pd.hDC);
 
                 
 
    TextOut (pd.hDC, 0, 0, "Hello, printer!", 15);
                 
 
    EndPage (pd.hDC);
 
    EndDoc (pd.hDC);
 
    szMessage = "Printed.";
   }
   else
   {
    szMessage = "Could not start document.";
   }
  }
  else
  {
   szMessage = "Could not create device context.";
  }
 }
 else
 {
  szMessage = "Canceled or printer could not be setup.";
 }
 
 if (szMessage)
 {
  MessageBox (NULL, szMessage, "Print Test", MB_OK);
 }
 
 return 0;
}
 
 
Mais à la place de : TextOut (pd.hDC, 0, 0, "Hello, printer!", 15);
je voudrait pouvoir mettre ce ke je veut a la place de "Hello, printer", ou plutot un fichier, merci de votre aide


---------------
Ma maman disait toujours: "la vie c'est comme une boite de chocolat, et si tu touche à mes chocolats, t'es mort !!!"
mood
Publicité
Posté le 27-03-2002 à 13:57:05  profilanswer
 

n°118129
Carbon_14
Posté le 27-03-2002 à 14:03:04  profilanswer
 

Normalement, on peut mettre TOUT ce qu'on veut, et qui utilise le pd.HDC (tracé de traits, texte divers et variés, etc..).  
 
Si on a du code qui trace à l'écran, si on prend le pd.HDC à la place, ça sort sur le printer au lieu de l'écran (c'est comme ça que je fais :D). Ca évite d'avoir du code spécifique. Faut juste voir les dimensions du papier (différent de l'écran, fonction du pilote, options, ..), sinon, risque de déborder.

n°118160
Carbon_14
Posté le 27-03-2002 à 14:25:31  profilanswer
 

[Des trucs à faire au labo]...
 
Une fonction très utile pour connaître les caractéristiques de l'imprimante courante: GetDeviceCaps()
 
    GetDeviceCaps(pd.hDC, HORZRES); donne la résolution horizontale
    GetDeviceCaps(pd.hDC, VERTRES);  
    GetDeviceCaps(pd.hDC, LOGPIXELSY;
    GetDeviceCaps(pd.hDC, BITSPIXEL);
    HautPage = GetDeviceCaps(pd.hDC, VERTSIZE); Taille hauteur
    LargPage = GetDeviceCaps(pd.hDC, HORZSIZE); Taille largeur
 
Si le prog écrit sur une feuille, si on paramètre les coordonnées, passer de la feuille à l'imprimante est direct.
 
Si c'est pour lister un fichier, faut tenir compte de la taille des caractères pour demander saut de page (EndPage (pd.hDC);) quand page pleine.

n°118220
KisskooOoo​l
Posté le 27-03-2002 à 15:26:51  profilanswer
 

en fait, je maitrise pas grand chose en c. Mon probleme est le suivant : un utilisateur creer un fichier, et je veux qu'il puise imprimer ce fichier sans avoir a allé dessus, j'avais fait un truc tres moche : system("print nom_fichier" );  mais ca marche pas sur des imprimantes rezo. Je comprend pas tout au code que j'ai indiquer je veux juste pouvoir l'integrer dans mon source, je voudrait seulement savoir si c'est possible de remplacer TextOut par une autre commande qui prendre le nom de mon fichier comme parametre d'entrée.
 
Merci quand meme carbon_14, ca fait toujours plaisir de trouver des reponses, en esperant que tu puisse avoir une reponse "simple" a mon probleme (bah oui, j'ai des problemes de comprehension desolé  :heink:


---------------
Ma maman disait toujours: "la vie c'est comme une boite de chocolat, et si tu touche à mes chocolats, t'es mort !!!"
n°118279
KisskooOoo​l
Posté le 27-03-2002 à 16:54:39  profilanswer
 

up  :bounce:


---------------
Ma maman disait toujours: "la vie c'est comme une boite de chocolat, et si tu touche à mes chocolats, t'es mort !!!"
n°118487
KisskooOoo​l
Posté le 28-03-2002 à 08:37:26  profilanswer
 

ya vraiment personne ki peut m'aider, c important de pouvoir imprimer pour mon programme  :cry:


---------------
Ma maman disait toujours: "la vie c'est comme une boite de chocolat, et si tu touche à mes chocolats, t'es mort !!!"
n°118567
Carbon_14
Posté le 28-03-2002 à 10:33:25  profilanswer
 

Le fichier, c'est du texte pur ? Pas trop grand pour Notepad ? On doit pouvoir (faut que je fasse des tests) faire un shell sur Notepad.exe -p nomfich ou qq chose analogue (j'espère, je délire peut-être :(). Ca devrait sortir sur l'imprimante courante tel que ça serait si on l'avait chargé puis demandé "imprime".
 
Ce devrait être l'équivalent de "Imprimer" du gestionnaire de fichier (bouton droit). Je teste dès que manip finalisée.

n°118597
Carbon_14
Posté le 28-03-2002 à 11:15:03  profilanswer
 

J'ai regardé dans l'explorateur de fichiers, les TXT sont associés à NOTEPAD par  
C:\WINNT\system32\NOTEPAD.EXE /p pour l'impression.
 
Je viens d'essayer sur imprimante réseau (ss Win NT4) la commande
C:\WINNT\system32\NOTEPAD.EXE /p e:\test.txt, et c'est sorti avec les défauts de NOTEPAD (lignes trop longues coupées, police par défaut, ..).
 
Faudrait créer une chaîne de caractères avec "" autour du nom de fichier s'il comporte des espaces et faire un shell.
 
Sinon, si l'imprimante réseau est définie comme lpt2 virtuel (c'est bon sous Win 3.11, sous les autres, je sait pas trop), on peut (pouvait) aussi faire copy NomCompletFich LPT2: (mais des fois pb d'éjection de dernière page :o) ou type NomCompletFich > LPT2
 
Il me semble que sous Win9x et suite, on peut définir jusqu'à 9 LPT (dont 8 (ou 7 si on a LPT2 installé physiquement) virtuels).

n°118670
KisskooOoo​l
Posté le 28-03-2002 à 13:24:16  profilanswer
 

Excellent, merci de tout coeur carbon_14 j'arrive a faire ce que je veux faire, t'es génial. En fait je créé un fichier BAT que j'execute a la fin de mon prog, comme ca je peux mettre le nom de mon fichier dedans,  encore merci


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  probleme pour imprimer

 

Sujets relatifs
Probleme de pointeurs en C?[HTML & DHTML] Problème Positionnement
Imprimer une page web à 75 % avec un bouton javascript[PHP] probleme de sauchettes (socket)
[open gl] problème de compilation d'un programme tout simple ![ commande SQL ] - problème avec UPDATE
probleme d'identtification automatique avec phpbb2Probleme C++ OpenGL/Glut
Probleme avec forum en phpbb 2[PHP] Problème de REG_EMPTY
Plus de sujets relatifs à : probleme pour imprimer


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR