Izmantojot Delphi, izdrukājiet jebkura veida dokumentus

Ja tavs Delfi lietojumprogrammai jādarbojas ar dažāda veida failiem, viens no uzdevumiem, kas varētu būt jūsu lietojumprogrammai, ir ļaut lietojumprogrammas lietotājam izdrukāt failu neatkarīgi no faila veida.

Lielākā daļa uz dokumentu orientēto lietojumprogrammu, piemēram, MS Word, MS Excel vai Adobe, var viegli izdrukāt šajā programmā izveidotos dokumentus. Piemēram, Microsoft Word saglabā tekstu, kuru jūs rakstāt dokumentos ar paplašinājumu DOC. Tā kā Word nosaka, kāds ir .DOC faila "neapstrādātais" saturs, tas zina, kā izdrukāt .DOC failus. Tas pats attiecas uz visiem "zināmajiem" failu tipiem, kuros ir kāda izdrukājama informācija.

Ko darīt, ja no savas programmas ir jāizdrukā dažāda veida dokumenti / faili? Vai jūs zināt, kā nosūtīt failu printerim, lai tas tiktu pareizi izdrukāts?

Drukāt no Delfiem

Mēs varam jautāt Windows, kāda lietojumprogramma var izdrukāt, piemēram, PDF failu. Vai, vēl labāk, mēs varam pateikt Windows, šeit ir viens PDF fails, nosūtīt to lietojumprogrammai, kas saistīta / atbild par PDF failu drukāšanu.

instagram viewer

Lai to izdarītu, atveriet Windows Explorer, dodieties uz direktoriju, kurā ir daži izdrukājami faili. Lielākajai daļai jūsu sistēmas failu tipu, ar peles labo pogu noklikšķinot uz faila Windows Explorer, jūs atradīsit komandu "Drukāt". Izpildot komandu Print shell, fails tiks nosūtīts uz noklusējuma printeri. Nu, tas ir tieši tas, ko mēs vēlamies: faila tipam zvaniet uz metodi, kas nosūtīs failu drukāšanai uz saistīto lietojumprogrammu. Funkcija, kurā mēs atrodamies, ir ShellExecute API funkcija.

ShellExecute: drukāt / drukāt

Tomēr ShellExecute var darīt daudz vairāk. Ar ShellExecute var pierast palaidiet lietojumprogrammu, atveriet Windows Explorer, uzsāciet meklēšanu norādītajā direktorijā un - kas mūs visvairāk interesē - izdrukājiet norādīto failu.

Norādiet printeri

Izmantojot iepriekš minēto zvanu, dokuments "document.doc", kas atrodas C diska saknē, tiks nosūtīts uz Windows noklusējuma printeri. ShellExecute darbībai "drukāšana" vienmēr izmanto noklusējuma printeri. Ko darīt, ja jums ir jādrukā uz cita printera, ko darīt, ja vēlaties ļaut lietotājam mainīt printeri?

Komanda PrintTo Shell

Pirms kopēšanas un ielīmēšanas: visās Delphi programmās pieejamo printera globālo mainīgo (TPrinter tips) var izmantot, lai pārvaldītu jebkuru drukāšanu, ko veic kāda programma. Printeris ir definēts vienībā "printeri", ShellExecute ir definēts vienībā "shellapi".

  1. Nometiet TComboBox uz veidlapas. Nosauciet to par "cboPrinter". Iestatīt stilu uz csDropDownLidt
  2. Ielieciet nākamās divas rindas veidlapas OnCreate pat apstrādātājā:
    // kombinētajā lodziņā ir pieejami printericboPrinter. Priekšmeti. Piešķirt (printeris. Printeri);// iepriekš atlasiet noklusējuma / aktīvo printericboPrinter. ItemIndex: = printeris. PrinterIndex;
izmantojiet, lai drukātu jebkuru dokumentu tipu noteiktā printerī

Piezīme: dažiem dokumentu veidiem nav drukāšanas saistītas programmas. Dažiem nav norādīta darbība "printto".

instagram story viewer