Tipăriți orice tip de document folosind Delphi

click fraud protection

Dacă ale tale Delphi aplicația trebuie să funcționeze pe diverse tipuri de fișiere, una dintre sarcinile pe care le-ați putea avea pentru aplicația dvs. este de a permite utilizatorului aplicației să imprime un fișier, indiferent de tipul de fișier.

Majoritatea aplicațiilor orientate spre documente, cum ar fi MS Word, MS Excel sau Adobe, pot imprima ușor documente create în programul respectiv. De exemplu, Microsoft Word salvează textul pe care îl scrieți în documente cu extensie DOC. Deoarece Word determină care este conținutul „brut” al unui fișier .DOC, știe cum să imprime fișiere .DOC. Același lucru este valabil și pentru orice tip de fișier „cunoscut” care conține informații care pot fi tipărite.

Ce se întâmplă dacă trebuie să imprimați diverse tipuri de documente / fișiere din aplicația dvs.? Puteți ști cum să trimiteți fișierul la imprimantă pentru ca acesta să fie tipărit corect?

Printează din Delphi

Putem întreba Windows ce aplicație poate imprima, de exemplu, un fișier PDF. Sau, și mai bine, putem spune Windows, iată un fișier PDF, să-l trimiteți la aplicația asociată / responsabilă cu imprimarea fișierelor PDF.

instagram viewer

Pentru a face acest lucru, deschideți Windows Explorer, navigați la un director care conține unele fișiere imprimabile. Pentru majoritatea tipurilor de fișiere din sistemul dvs., când faceți clic dreapta pe un fișier în Windows Explorer, veți localiza comanda „Print”. Executarea comenzii Print shell va duce la expedierea fișierului la imprimanta implicită. Ei bine, asta este exact ceea ce ne dorim: pentru un tip de fișier, apelați la o metodă care va trimite fișierul către aplicația asociată pentru imprimare. Funcția pe care o urmăm este funcția API ShellExecute.

ShellExecute: Print / PrintTo

Cu toate acestea, ShellExecute poate face mult mai mult. Se poate folosi ShellExecute lansați o aplicație, deschideți Windows Explorer, inițiați o căutare care începe în directorul specificat și - ceea ce este cel mai interesant pentru noi - tipăriți fișierul specificat.

Specificați imprimanta

Folosind apelul de mai sus, un document "document.doc" situat pe rădăcina unității C va fi trimis imprimantei implicite Windows. ShellExecute utilizează întotdeauna imprimanta implicită pentru acțiunea „print”. Ce se întâmplă dacă trebuie să imprimați pe o imprimantă diferită, și dacă doriți să permiteți utilizatorului să schimbe imprimanta?

Comanda PrintTo Shell

Înainte de a copia și insera: variabila globală Printer (tip TPrinter) disponibilă în toate programele Delphi poate fi utilizată pentru a gestiona orice tipărire efectuată de o aplicație. Imprimanta este definită în unitatea „imprimante”, ShellExecute este definită în unitatea „shellapi”.

  1. Aruncați un TComboBox pe un formular. Numește-l „cboPrinter”. Setați stilul pe csDropDownLidt
  2. Puneți următoarele două linii în instrumentul OnCreate chiar și al formularului:
    // au imprimante disponibile în caseta combocboPrinter. Articole. Atribuire (imprimantă. Imprimante);// preselectați imprimanta implicită / activăcboPrinter. ItemIndex: = imprimantă. PrinterIndex;
utilizați pentru a imprima orice tip de document la o imprimantă specificată

Notă: unele tipuri de documente nu au o aplicație asociată cu tipărirea. Unele nu au acțiunea „printto” specificată.

instagram story viewer