.txt Datei aus Programm drucken c++



  • Hi,

    ich möchten eine im Programm erstellte txt datei über den Standartdrucker(netzwerk- oder Lokaler Drucke) ausdrucken. Der Dateipfad ist aber in einer Variable abgespeichert. habt ihr da vl eine Lösung??
    hier ein Teil code:

    char pfad[MAX_PATH] = { "" };
        char rPfad[MAX_PATH] = { "" };
        string rrPfad;
        const char *ers;
        char *nom1 = "blablabla";
        char *nom2 = "blablablablablabladdddd";
    
        //aktuelles verzeichnis
        GetModuleFileName(NULL, rPfad, sizeof(rPfad));
    
        // konvertierung von char to string
        rrPfad = rPfad;
    
        //teilstring herauskopieren
        rrPfad = rrPfad.substr(0, rrPfad.rfind("\\xxx.exe"));
    
        //konvertierung von string to char
        ers = rrPfad.c_str();
    
        // ANHÄNGEN der notwändigen zeichen    
        strcat(&pfad[0], ers);
        strcat(&pfad[0], "\\xxx.txt");
        strcat(&pfad[0], "\0");
    
        //datei erstellen
        nochmal:
        ofstream f1 ("xxx.txt");
        if( f1.is_open() != true)
        {
            goto nochmal;
        }
    
        f1 << nom1 << nom2 << "\n";
        f1.close();
    
        //druck ausführen
        ShellExecute( NULL, "print", "xxx.txt", NULL,  pfad, SW_HIDE );
    

    mfg N30xxx



  • entweder an prn: oder lpt1: schicken oder starten von "notepad /p bla.txt"



  • mhm das problem ist aber das es an den standarddrucke gesendet werden musss
    der in manchen fällen ein Netzwerkdrucker ist und in anderen ein lokaler drucker!
    und der pfad der datei ist dynamisch deshalb ist der pfad in der variable abgespeichert

    mfg



  • Und was ist nun das problem mit

    ShellExecute( NULL, _T("print"), szFullPathForFile, NULL,  NULL, SW_HIDE );
    

    ?

    Das ist doch der richtige Ansatz.



  • Das Problem ist das er nicht druckt egal ob ich einen netzwerk oder lokalen drucker als standard habe.

    meiner meinung nach sollte das ja funktionieren. der code wär syntax mäßig richtig aber iwas mit dem befehl seber stimmt was nicht

    deshalb wollt ich fragen ob jemand vl eine bessere lösung weiß mit der man genauso über den standarddrucker drucken kann(am besten ganz ohne benutzer eingabe).

    mfg
    N30xxx



  • N30xxx schrieb:

    Das Problem ist das er nicht druckt egal ob ich einen netzwerk oder lokalen drucker als standard habe.

    meiner meinung nach sollte das ja funktionieren. der code wär syntax mäßig richtig aber iwas mit dem befehl seber stimmt was nicht

    deshalb wollt ich fragen ob jemand vl eine bessere lösung weiß mit der man genauso über den standarddrucker drucken kann(am besten ganz ohne benutzer eingabe).

    mfg
    N30xxx

    aahhh sorry jetzt erst gesehen hab die zwei verwechselt

    ShellExecute( NULL, "print", pfad, NULL,  NULL, SW_HIDE );
    

    danke jetzt funktioniert es


Anmelden zum Antworten