Drucken

börtsch

Grünschnabel
Hallo! Ich möchte ein paar daten aus der DB drucken, das geht auch alles wunderbar. Hab das so umgesetzt:
Code:
CPrintDialog dlgPrint(FALSE,PD_ALLPAGES,this);
if (dlgPrint.DoModal()==IDOK)
	{
		CDC DcPrint;
		DcPrint.Attach(dlgPrint.GetPrinterDC());
		
		 // Eine DOCINFO-Struktur erzeugen und füllen
		DOCINFO myPrintJob;
		myPrintJob.cbSize = sizeof(myPrintJob);
		m_HlTitle="Honorarnote";
		myPrintJob.lpszDocName = m_HlTitle;

		myPrintJob.lpszOutput = NULL;
		myPrintJob.lpszDatatype = NULL;
		myPrintJob.fwType = NULL;

		
		
		
		// Ausdruck des Dokuments starten
		if (DcPrint.StartDoc(&myPrintJob)>=0)
		{								DcPrint.StartPage();
		PrintAusgabe(&DcPrint, 0);
		DcPrint.EndPage();
		DcPrint.EndDoc();
}
}
else{
			MessageBox("Der Druckauftrag konnte nicht gestartet werden!", "Druckfehler", MB_OK | MB_ICONEXCLAMATION);
		}

		// Druckergerätekontext löschen
		DcPrint.DeleteDC();

	}

Mein Problem ist nun, dass ich das Dokument nur einmal drucken darf, also muss ich sicherstellen, dass das Papier auch aus dem Drucker gekommen ist.
Kann man abfragen ob ein Druckerfehler wie z.B. Papierstau, kein Papier, drucker nicht eingeschaltet usw aufgetreten ist?

Danke schonmal
börtsch
 
Zuletzt bearbeitet:
Das ist das schöne am Spooler. Nein. Es geht nicht. Man kann zwar einen Printjob Status abfragen, aber der gibt nichts Sinnvolles zurück.
Früher, unter 9x, konnte man wenigstens mit Direktzugriff auf den Port abfragen, aber das gibbet ab NT/2000/XP nicht mehr.

Dein Programm bekommt ein OK, alles gedruckt, aber das bedeutet eigentlich nur, dass sich der Spooler jetzt darum kümmert. Und da kann der Druckauftrag dann ewig drin rumhängen, wenn der Drucker muckt.
 
So a Käse - aber was solls.

Ich hätte da noch eine andere Frage:
Wie kann ich einstellen, dass im Druck-Dialog keine Anzahl der Exemplare eingegeben werden kann also deaktivieren und dann würde ich noch gern dass 'Querformat' standardmässig aktivierten. Nur ist das ja druckerabhängig also weiss ich nicht...
Aber die anzahl der Exemplare wär mir ganz wichtig.

Danke
börtsch
 
Zurück