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

 


Dernière réponse
Sujet : probleme pour imprimer
KisskooOool 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

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
KisskooOool 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
Carbon_14 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).
Carbon_14 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.
KisskooOool ya vraiment personne ki peut m'aider, c important de pouvoir imprimer pour mon programme  :cry:
KisskooOool up  :bounce:
KisskooOool 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:
Carbon_14 [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.
Carbon_14 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.
KisskooOool 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

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)