Drucken Sie alle Arten von Dokumenten mit Delphi

click fraud protection

Wenn dein Delphi Die Anwendung muss mit verschiedenen Dateitypen arbeiten. Eine der Aufgaben, die Sie möglicherweise für Ihre Anwendung haben, besteht darin, dem Benutzer der Anwendung das Drucken einer Datei zu ermöglichen, unabhängig vom Dateityp.

Die meisten dokumentenorientierten Anwendungen wie MS Word, MS Excel oder Adobe können problemlos in diesem Programm erstellte Dokumente drucken. Zum Beispiel, Microsoft Word speichert den Text, den Sie in Dokumente mit der DOC-Erweiterung schreiben. Da Word den "rohen" Inhalt einer DOC-Datei bestimmt, weiß es, wie DOC-Dateien gedruckt werden. Gleiches gilt für jeden "bekannten" Dateityp, der einige druckbare Informationen enthält.

Was ist, wenn Sie verschiedene Arten von Dokumenten / Dateien aus Ihrer Anwendung drucken müssen? Können Sie wissen, wie Sie die Datei an den Drucker senden, damit sie korrekt gedruckt wird?

Drucken aus Delphi

Wir können Windows fragen, welche Anwendung beispielsweise eine PDF-Datei drucken kann. Oder, noch besser, wir können Windows mitteilen, dass es sich um eine PDF-Datei handelt, die an die für den Druck von PDF-Dateien zuständige Anwendung gesendet wird.

instagram viewer

Öffnen Sie dazu den Windows Explorer und navigieren Sie zu einem Verzeichnis mit einigen druckbaren Dateien. Wenn Sie für die meisten Dateitypen auf Ihrem System im Windows Explorer mit der rechten Maustaste auf eine Datei klicken, wird der Befehl "Drucken" angezeigt. Wenn Sie den Befehl "Shell drucken" ausführen, wird die Datei an den Standarddrucker gesendet. Genau das wollen wir: Rufen Sie für einen Dateityp eine Methode auf, mit der die Datei zum Drucken an die zugehörige Anwendung gesendet wird. Die Funktion, nach der wir suchen, ist die ShellExecute-API-Funktion.

ShellExecute: Print / PrintTo

ShellExecute kann jedoch noch viel mehr. ShellExecute kann verwendet werden Starten Sie eine AnwendungÖffnen Sie den Windows Explorer, starten Sie eine Suche, die im angegebenen Verzeichnis beginnt, und drucken Sie - was für uns am interessantesten ist - die angegebene Datei.

Geben Sie den Drucker an

Mit dem obigen Aufruf wird ein Dokument "document.doc" im Stammverzeichnis des Laufwerks C an den Windows-Standarddrucker gesendet. ShellExecute verwendet immer den Standarddrucker für die Aktion "Drucken". Was ist, wenn Sie auf einem anderen Drucker drucken müssen? Was ist, wenn Sie dem Benutzer erlauben möchten, den Drucker zu wechseln?

Der PrintTo Shell-Befehl

Vor dem Kopieren und Einfügen: Mit der in allen Delphi-Programmen verfügbaren globalen Druckervariablen (TPrinter-Typ) können Sie alle von einer Anwendung ausgeführten Druckvorgänge verwalten. Der Drucker ist in der Einheit "Drucker" definiert, ShellExecute ist in der Einheit "Shellapi" definiert.

  1. Legen Sie eine TComboBox in einem Formular ab. Nennen Sie es "cboPrinter". Setzen Sie Style auf csDropDownLidt
  2. Fügen Sie die nächsten beiden Zeilen in den OnCreate-Even-Handler des Formulars ein:
    // Drucker im Kombinationsfeld verfügbar habencboPrinter. Artikel. Zuweisen (Drucker. Drucker);// Den Standarddrucker / aktiven Drucker vorab auswählencboPrinter. ItemIndex: = Drucker. PrinterIndex;
Verwenden Sie diese Option, um einen beliebigen Dokumenttyp auf einem bestimmten Drucker zu drucken

Hinweis: Für einige Dokumenttypen ist dem Drucken keine Anwendung zugeordnet. Bei einigen ist die Aktion "printto" nicht angegeben.

instagram story viewer