Natisnite poljubno vrsto dokumenta s pomočjo Delphija

Če tvoj Delphi aplikacija mora delovati na različnih vrstah datotek, ena od nalog, ki bi jo lahko imeli za vašo aplikacijo, je, da uporabniku aplikacije omogočite tiskanje datoteke, ne glede na vrsto datoteke.

Večina programov, usmerjenih v dokumente, kot so MS Word, MS Excel ali Adobe, zlahka natisne dokumente, ustvarjene v tem programu. Na primer Microsoft Besedilo, ki ga napišete, shrani v dokumente s pripono DOC. Ker Word določa, kaj je "surova" vsebina .DOC datoteke, zna tiskati .DOC datoteke. Enako velja za vse "znane" vrste datotek, ki vsebujejo nekatere podatke za tiskanje.

Kaj pa, če morate iz svoje aplikacije natisniti različne vrste dokumentov / datotek? Ali lahko veste, kako poslati datoteko v tiskalnik, da se lahko pravilno natisne?

Natisni iz Delphija

Windows lahko vprašamo, katera aplikacija lahko natisne, na primer datoteko PDF. Ali še bolje, Windows lahko povemo, da je tukaj ena datoteka PDF, in jo pošlje v aplikacijo, povezano / zadolženo za tiskanje datotek PDF.

Če želite to narediti, odprite program Windows Explorer in se pomaknite do imenika, ki vsebuje nekaj datotek za tiskanje. Pri večini vrst datotek v sistemu boste z desnim gumbom miške kliknite datoteko v programu Windows Explorer in poiščite ukaz "Natisni". Izvedba ukaza lupine Natisni bo povzročila, da bo datoteka poslana na privzeti tiskalnik. No, točno to želimo: za vrsto datoteke pokličite metodo, ki bo datoteko poslala v tiskalnik, ki je povezan s programom. Funkcija, za katero smo, je funkcija ShellExecute API.

instagram viewer

ShellExecute: Print / PrintTo

Vendar pa ShellExecute lahko naredi veliko več. ShellExecute je mogoče uporabiti za zaženite aplikacijo, odprite raziskovalec Windows, sprožite iskanje v določenem imeniku in - kar nas najbolj zanima - natisnite določeno datoteko.

Določite tiskalnik

Z zgornjim klicem bo dokument "document.doc", ki se nahaja na korenu pogona C, poslan v privzeti tiskalnik Windows. ShellExecute vedno uporablja privzeti tiskalnik za dejanje "print". Kaj, če morate tiskati na drug tiskalnik, kaj pa, če želite uporabniku dovoliti, da spremeni tiskalnik?

Ukaz lupine PrintTo

Preden kopirate in prilepite: globalno spremenljivko Printer (vrsta TPrinterja), ki je na voljo v vseh programih Delphi, lahko uporabite za upravljanje katerega koli tiskanja, ki ga izvaja aplikacija. Tiskalnik je opredeljen v enoti "tiskalniki", ShellExecute je definiran v enoti "šelapi".

  1. Na obrazec spustite TComboBox. Poimenujte ga "cboPrinter". Slog nastavite na csDropDownLidt
  2. Naslednji dve vrstici vstavite v enakomerek za obdelavo obrazca OnCreate:
    // imajo v pripravljenem tiskalniku razpoložljive tiskalnikecboPrinter. Predmeti. Dodeli (tiskalnik) Tiskalniki);// vnaprej izberite privzeti / aktivni tiskalnikcboPrinter. ItemIndex: = tiskalnik. PrinterIndex;
uporabite za tiskanje katere koli vrste dokumenta na določen tiskalnik

Opomba: nekatere vrste dokumentov nimajo aplikacije, povezane s tiskanjem. Nekateri nimajo določenega dejanja "printto".