Drukuj dowolny typ dokumentu za pomocą Delphi

Jeżeli twój Delfy aplikacja musi działać na różnych typach plików, jednym z zadań, które możesz mieć dla aplikacji, jest zezwolenie użytkownikowi aplikacji na wydrukowanie pliku, bez względu na typ pliku.

Większość aplikacji zorientowanych na dokumenty, takich jak MS Word, MS Excel lub Adobe, może z łatwością drukować dokumenty utworzone w tym programie. Na przykład, Microsoft Program Word zapisuje tekst, który piszesz w dokumentach z rozszerzeniem DOC. Ponieważ Word określa „surową” zawartość pliku .DOC, wie, jak wydrukować pliki .DOC. To samo dotyczy każdego „znanego” typu pliku zawierającego pewne informacje do wydrukowania.

Co zrobić, jeśli chcesz wydrukować różnego rodzaju dokumenty / pliki z aplikacji? Czy wiesz, jak wysłać plik do drukarki, aby mógł zostać poprawnie wydrukowany?

Drukuj z Delphi

Możemy zapytać system Windows, jaką aplikację może wydrukować, na przykład plik PDF. Lub nawet lepiej, możemy powiedzieć Windowsowi, oto jeden plik PDF, wysłać go do aplikacji powiązanej / odpowiedzialnej za drukowanie plików PDF.

instagram viewer

Aby to zrobić, otwórz Eksploratora Windows, przejdź do katalogu zawierającego niektóre pliki do wydrukowania. W przypadku większości typów plików w systemie kliknięcie pliku prawym przyciskiem myszy w Eksploratorze Windows spowoduje zlokalizowanie polecenia „Drukuj”. Wykonanie polecenia Drukuj powłokę spowoduje wysłanie pliku do domyślnej drukarki. Cóż, właśnie tego chcemy: dla typu pliku wywołaj metodę, która wyśle ​​plik do powiązanej aplikacji w celu wydrukowania. Poszukiwaną przez nas funkcją jest funkcja API ShellExecute.

ShellExecute: Drukuj / Drukuj do

ShellExecute może jednak zrobić znacznie więcej. Można użyć ShellExecute uruchom aplikację, otwórz Eksploratora Windows, rozpocznij wyszukiwanie w określonym katalogu i - co nas najbardziej interesuje - wydrukuj określony plik.

Określ drukarkę

Przy użyciu powyższego wywołania dokument „document.doc” znajdujący się w katalogu głównym dysku C zostanie wysłany do domyślnej drukarki systemu Windows. ShellExecute zawsze używa domyślnej drukarki do akcji „drukowania”. Co zrobić, jeśli chcesz drukować na innej drukarce, a jeśli chcesz zezwolić użytkownikowi na zmianę drukarki?

Polecenie PrintTo Shell

Przed skopiowaniem i wklejeniem: globalna zmienna Printer (typ TPrinter) dostępna we wszystkich programach Delphi może służyć do zarządzania drukowaniem wykonywanym przez aplikację. Drukarka jest zdefiniowana w jednostce „printers”, ShellExecute jest zdefiniowany w jednostce „shellapi”.

  1. Upuść TComboBox na formularzu. Nazwij go „cboPrinter”. Ustaw styl na csDropDownLidt
  2. Umieść kolejne dwa wiersze w module obsługi parzystości OnCreate formularza:
    // mają dostępne drukarki w polu kombicboPrinter. Przedmiotów. Przypisz (drukarka. Drukarki);// wstępnie wybierz domyślną / aktywną drukarkęcboPrinter. ItemIndex: = drukarka. PrinterIndex;
służy do drukowania dowolnego typu dokumentu na określonej drukarce

Uwaga: niektóre typy dokumentów nie mają aplikacji powiązanej z drukowaniem. Niektóre nie mają określonej akcji „printto”.