IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Imprimer un fichier .txt


Sujet :

C

  1. #1
    Invité
    Invité(e)
    Par défaut Imprimer un fichier .txt
    Bonjour tous le monde,

    Je créé ce topic car j'ai besoin de votre aide. En effet sur plusieurs forums dont celui ci j'ai trouvé beaucoup de topics, mais je n'arrive pas à comprendre réellement ce qu'il faut que je mette pour que cela fonctionne.

    Mon but est d'imprimer un fichier .txt que j'aurais créé auparavant. C'est pourquoi je voudrais savoir si vous pouvez me passer des liens qui m'expliquerait comment cela fonctionne,ou le code qu'il faut mettre.

    Bien sur, cela doit fonctionner que l'imprimante soit branchée en USB ou non ( je ne sais pas si cela a une importance, je préfère le dire ).

    Je précise que j'ai essayé de le faire avec GTK et que je n'y arrives pas, donc je pensais à la place passer par les fonctions du système pour lancer l'impression plus facilement.

    Je vous remercie d'avance,

    Bonne journée !

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 137
    Points
    23 137
    Par défaut
    Tu as :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    fclose(mon_fichier);
    system("a2ps chemin_de_mon_fichier/mon_fichier.txt");
    Si tu veux vraiment faire du C, trouve d'abord la commande shell qui fait ce que tu veux puis tu regarde le code source de la commande.

    j'ai trouvé ça sur google :
    imprimante = fopen( "lpt1", "w" );
    fichier = fopen( "truc.txt", "r" );
    fgets( fichier, .. );
    fputs( imprimante, .. );
    http://forum.matbe.com/materielbe/OS...jet_6313_1.htm

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci tout d'abord pour la réponse.

    Ensuite, j'avoue que je n'ai rien compris à ton message. Moi j'utilise fputs pour écrire dans des fichiers, pas imprimer :S

    Pourrais tu m'expliquer plus en détail s'il te plait?

    Merci d'avance !

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 125
    Points : 33 029
    Points
    33 029
    Billets dans le blog
    4
    Par défaut
    fputs sert à écrire dans un flux
    un fichier n'est qu'un flux particulier

    d'abord tu ouvres un flux vers l'imprimante, ensuite tu y envoies les données à imprimer
    enfin c'est la théorie je suppose, je n'ai jamais tenté une telle opération, et notamment quand l'impression démarre ? à la fermeture du flux ? une commande à envoyer ? ... ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Merci pour ta réponse!

    Hum, mais du coup , moi mon but, c'est que le programme trouve l'imprimante connectée, et lui envois directement un fichier txt, il n'y aurait pas quelque chose de plus simple? Ou qui fonctionne? Car j'ai beau avoir tout essayé, je ne comprends rien, ça ne marche pas

    Merci encore

  6. #6
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 137
    Points
    23 137
    Par défaut
    Le plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    int main()
    {
            system("lpr mon_fichier.txt");//place mon_fichier.txt dans la file d'attente d'impression de l'imprimante.
            return 0;
    }
    On ne peut pas faire plus simple.
    Après si tu veux vraiment le faire en C au lieu d'utiliser system, ça sera plus compliqué et je doute qu'on te donne la solution toute faite.

    EDIT : pour windows c'est system("print mon_fichier.txt");

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour et merci pour ta réponse.

    Je viens d'essayer et ça me met le message d'erreur :
    "impossible d'initialiser le périphérique PRN "

    Je sais pas si ça sert à quelque chose, mais mon imprimante est branchée en USB.

    Et je ne comprends pas pourquoi tu dis qu'en C, ce sera plus compliqué, pourquoi?

    En tout cas merci encore!

    Bonne journée

  8. #8
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 677
    Points
    13 677
    Billets dans le blog
    1
    Par défaut
    On va peut-être préciser quelques points

    Des questions pour toi :
    1) Quel est ton système d'exploitation ?

    2) Ton imprimante est correctement installée et fonctionne bien si tu imprimes avec un "vrai" logiciel ? (si c'est pas le cas, tu sors !)

    Des explications complémentaires :
    1) L'utilisation d'une imprimante n'est pas du ressort du C "standard". Il te faudra donc passer par des moyens détournés.

    2) La première solution est d'utiliser les fonctions de ton OS, grâce à la commande system(). C'est sûrement le plus simple puisque qu'il suffit de lui donner en paramètre une commande qui fonctionne dans la console de ton OS.

    3) La seconde solution donnée avec fputs est une solution pour Unix. Pour les systèmes, tout est flux ~= fichiers. La fonction fprintf sert à lire dans un flux ; tu peux lui passer stdin comme flux pour écrire sur l'écran. Les entrées-sorties de ton PC en général sont donc des flux. Écrire sur le fichier correspondant au flux de l'imprimante devrait en tout logique permette d'imprimer.

    4) Une autre solution : trouver une bibliothèque qui contient les fonctions nécessaires à ça.

    EDIT : je viens de trouver ça : http://www.timeatlas.com/term_to_lea..._fill_the_gaps et http://www.frogmorecs.com/arts/what-is-a-prn-file , ca pourrait peut etre servir

  9. #9
    Invité
    Invité(e)
    Par défaut
    Merci beaucoup pour ta réponse !

    Alors je suis sous Seven, pour ce qui est de l'imprimante "correctement installée " , je t'avoue que je l'ai branché en USB et j'ai laissé Seven faire le reste car je n'ai plus le CD d'installation, j'ai déjà imprimé sans problèmes.

    Pour ce qui est du reste, merci encore, ça me permet de mieux comprendre !

    Je regarde les liens que tu m'a passé, et je teste ça !

    Merci encore

    EDIT: j'ai fais les manipulations à faire, mais après je ne comprends pas. J'ai paramétré l'imprimante, après j'ai utilisé l'exemple, et j'ai bien le fichier.prn qui se créé, mais après, comment l'imprimer en lançant l'instruction en C?

  10. #10
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 677
    Points
    13 677
    Billets dans le blog
    1
    Par défaut
    De rien

    A la fin du deuxième lien, tu trouves la commande : Copy filename.prn \\computername\printersharename Ce dont je ne suis vraiment pas sûr, c'est que le fichier crée par le premier code est au format attendu...

    Si tu es sous Windows, as-tu essayé la commande système "print" que Neckara t'as indiqué ?

  11. #11
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Bktero Voir le message
    De rien

    A la fin du deuxième lien, tu trouves la commande : Copy filename.prn \\computername\printersharename Ce dont je ne suis vraiment pas sûr, c'est que le fichier crée par le premier code est au format attendu...

    Si tu es sous Windows, as-tu essayé la commande système "print" que Neckara t'as indiqué ?
    Je viens de tout essayer, que ça soit le copy, le print, le lpr, rien ne fonctionne.


  12. #12
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 137
    Points
    23 137
    Par défaut
    Je pense que ces commandes utilisent l'imprimante par défaut (si il y en a plusieurs), or, comme tu sembles ne pas avoir mis le CD d'installation pour ton imprimante je pense que cela dois poser problème.

  13. #13
    Invité
    Invité(e)
    Par défaut
    Je veux bien, mais en sachant que maintenant très peu de gens ont encore les CD d'installation ou s'en servent, vu que c'est pour une cliente, je sais pas quoi utiliser du coup :S Faut que ça marche dans tous les cas :S

  14. #14
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 137
    Points
    23 137
    Par défaut
    Au pire, tu peux tenter de lancer un logiciel style open office ou autre en lui passant des arguments :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    system("chemin/logiciel.exe argument1 argument2 argument3 ....")
    Théoriquement en passant les bons arguments, on peut imprimer.
    NB : adobe.exe peut imprimer me semble

    Si ça ne marche pas, je doute que tu réussisse à faire ce que tu veux.

Discussions similaires

  1. [AC-2003] imprimer fichier .txt en paysage
    Par Kafi dans le forum VBA Access
    Réponses: 1
    Dernier message: 05/10/2010, 10h55
  2. Imprimer le contenu d'une fenetre ou d'un fichier .txt en GTK+
    Par Invité dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 09/08/2009, 13h35
  3. Réponses: 6
    Dernier message: 22/02/2007, 16h11
  4. [C#]Comment imprimer un fichier .txt
    Par thomfort dans le forum Windows Forms
    Réponses: 2
    Dernier message: 12/12/2006, 04h08
  5. Imprimer un fichier txt.
    Par Tab dans le forum Réseau
    Réponses: 5
    Dernier message: 19/05/2006, 08h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo