Jester Geschrieben 8. Juni 2001 Geschrieben 8. Juni 2001 Wie erteile ich aus einem Programm heraus einen Druckauftrag einer bestimmten Textdatei ? Zitieren
Crush1 Geschrieben 8. Juni 2001 Geschrieben 8. Juni 2001 Ich habs mir mal angeschaut und ich beschreibs lieber nur: Man muß einen Display-Context herstellen diesen mit Items füllen diese mit Text füllen die man aus der Datei rauszieht. Dann einen Drucker-Kontext herstellen. Ein CPrindialog-Objekt erstellen. Dieses mit dem Druckerkontext initialisieren. Den Display-Context in den Print()-Aufruf des Druckerkontexts übergeben und dann sollte theoretisch ein Druckauftrag erzeugt werden - puh! Da ist man vielleicht doch besser bedient den Text im Dos-Fenster mit dem print-Befehl auszudrucken - nur wegen einer Text-Datei lohnt sich der Aufwand wohl kaum. Zitieren
Crush1 Geschrieben 8. Juni 2001 Geschrieben 8. Juni 2001 Ok, ich habe mir doch die Mühe gemacht, weils doch etwas elementares ist: PRINTDLG pd; // alle Variablen mit 0 initialisieren // dann gibt´s keinen Ärger ZeroMemory(&pd, sizeof(PRINTDLG)); pd.lStructSize = sizeof(PRINTDLG); pd.hwndOwner = hWnd; pd.hDevMode = NULL; pd.hDevNames = NULL; pd.Flags = PD_USEDEVMODECOPIESANDCOLLATE | PD_RETURNDC; // Anzahl Seiten pd.nCopies = 1; pd.nFromPage = 0xFFFF; pd.nToPage = 0xFFFF; pd.nMinPage = 1; pd.nMaxPage = 0xFFFF; DOCINFO di; di.cbSize = sizeof(DOCINFO); di.lpszDocName = "Drucktest"; di.lpszOutput = (LPTSTR) NULL; di.fwType = 0; // Ab hier wird der Druckauftrag gestartet StartDoc(pd.hDC, &di); StartPage(pd.hDC); // das hier wird als Text ins Fenster kopiert // Natürlich sollte der Pen und Zeichensatz/-größe/-farbe vorher eingestellt werden TextOut(pd.hDC, 10, 10, "TestDruck", strlen("Drucker")); // Jetzt könnte man noch DIBs (Bilder) oder sonstwas reinkopieren, wird alles gedruckt // Alles wird als fertig abgeschlossen EndPage(pd.hDC); //Bei mehreren Seiten muß StartPage()/EndPage() mehrfach aufgerufen werden EndDoc(pd.hDC); DeleteDC(pd.hDC); Zitieren
Jester Geschrieben 10. Juni 2001 Autor Geschrieben 10. Juni 2001 Hi Crush1, danke für den Tip, das werde ich gleich mal versuchen !! Gruß Jester Zitieren
maddin Geschrieben 11. Juni 2001 Geschrieben 11. Juni 2001 @Crush1 nimm doch den print befehl aus alten dos zeiten. int main () { system ("print datei.txt"); } Zitieren
Crush1 Geschrieben 11. Juni 2001 Geschrieben 11. Juni 2001 Das erzeugt aber keinen "echten" Druckauftrag. Versuch das mal bei Win2k. Zitieren
Jester Geschrieben 18. Juni 2001 Autor Geschrieben 18. Juni 2001 Hi Leute, das mit dem DOS - Befehl klappt nicht so recht. Ich bekomme zwar die Meldung :"... Datei wird gedruckt ...", aber es passiert gaaaar nichts. Der Pfad wird korrekt angegeben, aber ..... Also nächster Versuch meinerseits. Die ausführliche Variante habe ich noch nicht ausprobiert, ich muss erst noch eine Menge nachlesen. Ciao, Jester Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.