Jester Geschrieben 8. Juni 2001 Geschrieben 8. Juni 2001 Wie erteile ich aus einem Programm heraus einen Druckauftrag einer bestimmten Textdatei ?
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.
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);
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
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"); }
Crush1 Geschrieben 11. Juni 2001 Geschrieben 11. Juni 2001 Das erzeugt aber keinen "echten" Druckauftrag. Versuch das mal bei Win2k.
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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden