Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Druckauftrag

Empfohlene Antworten

Veröffentlicht

Wie erteile ich aus einem Programm heraus einen Druckauftrag einer bestimmten Textdatei ?

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.

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);

Hi Crush1,

danke für den Tip, das werde ich gleich mal versuchen !!

Gruß Jester

@Crush1

nimm doch den print befehl aus alten dos zeiten.


int main ()

{

    system ("print datei.txt");

}

Das erzeugt aber keinen "echten" Druckauftrag. Versuch das mal bei Win2k.

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.