Freigeben über


Vorgehensweise: Drucken aus einem Windows-Programm

In diesem Abschnitt wird beschrieben, wie Sie aus einem nativen Windows-Programm drucken.

Übersicht

Drucken ist in der Regel ein integraler Bestandteil eines nativen Windows-Programms. Daher ist es kein Feature, das Sie einfach hinzufügen können, nachdem Sie das Programm geschrieben haben. Wenn das Programm jedoch für die Verwendung von XPS-Dokumenten konzipiert ist, benötigt es nicht viel zusätzlichen Code, wenn überhaupt, um den Dokumentinhalt für den Druck zu rendern. Die XPS-Dokumente der Anwendung können direkt an einen Drucker gesendet werden, der über einen XPSDrv-Druckertreiber verfügt.

Verwenden Sie die XPS-Dokument-API zum Erstellen des Dokumentinhalts und die XPS-Druck-API , um den Dokumentinhalt an den Drucker zu senden. Die XPS-Druck-API verarbeitet den Dokumentinhalt für den Zieldrucker. Wenn der ausgewählte Drucker über einen XPSDrv-Druckertreiber verfügt, wird das Dokument ohne zusätzliche Konvertierung an den Drucker gesendet. Wenn der ausgewählte Drucker über einen GDI-basierten Druckertreiber verfügt, kann das Programm den Inhalt auch an den Drucker senden, und die XPS-Druck-API konvertiert den Dokumentinhalt so, dass er mit dem GDI-basierten Druckertreiber kompatibel ist. In beiden Fällen ist die Verarbeitung, die die Anwendung ausführt, identisch.

Druckaufgaben

In den folgenden Themen werden die grundlegenden Schritte zum Drucken von Programminhalten beschrieben.

  1. Sammeln Sie Druckauftragsinformationen vom Benutzer.

    In der Regel initiiert ein Benutzer einen Druckauftrag, wenn er die Druckoption aus einem Menü auswählt und das Programm ein Druckdialogfeld anzeigt, um die Details des Druckauftrags zu erfassen. Der Benutzer wählt in der Regel den Drucker, die Anzahl der Kopien und Druckerkonfigurationsdetails aus, z. B. zweiseitiges Drucken und Heften.

    Informationen dazu finden Sie unter Vorgehensweise: Sammeln von Druckauftragsinformationen vom Benutzer.

  2. Erstellen Sie den Statusindikator.

    Eine Statusanzeige gibt dem Benutzer Feedback zum Fortschritt des Druckauftrags. Der Statusindikator kann eine Statusanzeige sein, die Teil eines Dialogfelds ist, das die Schaltfläche Abbrechen für den Auftrag enthält, oder eine Statusleiste in der status leiste am unteren Rand des Standard Fensters sein.

    Informationen zur Statusanzeige finden Sie unter Vorgehensweise: Anzeigen des Druckauftragsstatus.

    Weitere Ideen zum Anzeigen des Status des Druckauftrags finden Sie in den Informationen in den Richtlinien zur Entwicklung der Windows-Anwendungsoberflächen.

  3. Starten Sie den Druckthread.

    Nachdem das Programm die Druckauftragsinformationen vom Benutzer gesammelt hat, kann es den Druckthread starten, um die eigentliche Verarbeitung des Dokuments für den Druck durchzuführen.

    Informationen zum Druckthread finden Sie unter Vorgehensweise: Starten und Beenden eines Druckthreads.

  4. Rendern von Druckauftragsdaten

    Der Druckthread rendert die Dokumentdaten für den Druck. Sie sollten diese Verarbeitung in diskrete Verarbeitungsschritte unterteilen, damit der Benutzer die Verarbeitung unterbrechen und den Auftrag abbrechen kann und dass der Verarbeitungsthread andere Threads und Prozesse nicht blockieren kann.

    Informationen dazu, wie die Druckauftragsdaten gerendert werden, finden Sie unter Vorgehensweise: Rendern von Druckauftragsdaten.

  5. Überwachen des Status des Druckauftrags

    Aktualisieren Sie während der Ausführung der einzelnen Verarbeitungsschritte die Statusanzeige, um die Verwendung zu informieren. Berechnen Sie die Verarbeitungsschritte, um den angeforderten Auftrag abzuschließen, und aktualisiert dann die Statusanzeige, während diese Schritte ausgeführt werden.

  6. Schließen Sie den Druckauftrag, und beenden Sie den Druckthread.

    Nachdem das Programm den Druckauftrag an den Drucker gesendet hat oder der Benutzer den Druckauftrag abgebrochen hat, müssen Sie den Druckauftrag schließen und die vom Druckauftrag verwendeten Ressourcen freigeben.

Vorgehensweise: Sammeln von Druckauftragsinformationen vom Benutzer