Printige Delphi abil mis tahes tüüpi dokumente

Kui sinu Delphi Rakendus peab töötama erinevat tüüpi failidega, üks teie rakenduse jaoks vajalikest ülesannetest on lubada rakenduse kasutajal fail printida, olenemata failitüübist.

Enamik dokumendile orienteeritud rakendusi, näiteks MS Word, MS Excel või Adobe, saavad programmis loodud dokumente hõlpsalt printida. Näiteks, Microsoft Word salvestab DOC-laiendiga dokumentides kirjutatud teksti. Kuna Word määrab, mis on .DOC-faili "toores" sisu, teab ta, kuidas .DOC-faile printida. Sama kehtib kõigi teadaolevate failitüüpide kohta, millel on trükitavat teavet.

Mis saab siis, kui peate oma rakendusest printima eri tüüpi dokumente / faile? Kas saate teada, kuidas faili printerisse saata, et seda õigesti printida?

Prindi Delphist

Saame Windowsilt küsida, milline rakendus saab printida näiteks PDF-faili. Või veel parem, võime öelda, et Windows, siin on üks PDF-fail, saata see rakendusega seotud / vastutavaks PDF-failide printimise eest.

Selleks avage Windows Explorer, liikuge kataloogi, mis sisaldab mõnda prinditavat faili. Kui teete enamiku teie süsteemis olevate failitüüpide jaoks, kui teete Windows Exploreris failil paremklõpsu, leiate käsu "Prindi". Käsu Prindi kest käskluse täitmisel saadetakse fail vaikeprinteri. Noh, see on täpselt see, mida me tahame: failitüübi jaoks helistage meetodile, mis saadab faili printimiseks seotud rakendusse. Funktsioon, mille järel oleme, on ShellExecute API funktsioon.

instagram viewer

ShellExecute: printimine / printimine

ShellExecute saab aga teha palju enamat. ShellExecute saab kasutada käivitage rakendus, avage Windows Explorer, käivitage otsimine määratletud kataloogis ja - mis meid kõige rohkem huvitab - printige määratud fail.

Täpsustage printerit

Ülaltoodud üleskutset kasutades saadetakse C-draivi juuril asuv dokument "document.doc" Windowsi vaikeprinteri. ShellExecute kasutab "printimiseks" alati vaikimisi printerit. Mis siis, kui peate printima teise printerisse, mis siis, kui soovite lubada kasutajal printerit vahetada?

Käsk PrintTo Shell

Enne kopeerimist ja kleepimist: kõigis Delphi programmides saadaolevat printeri globaalset muutujat (TPrinteri tüüp) saab kasutada rakenduse tehtud printimise haldamiseks. Printer on määratletud üksuses "printerid", ShellExecute on määratletud üksuses "shellapi".

  1. Tilgutage vormile TComboBox. Pange see nimeks "cboPrinter". Seadistage stiil väärtuseks csDropDownLidt
  2. Pange järgmised kaks rida vormi OnCreate isegi käitlejasse:
    // kui liitboksis on saadaval printeridcboPrinter. Esemed. Määra (printer. Printerid);// eelvalige vaikimisi / aktiivne printercboPrinter. ItemIndex: = printer. PrinterIndex;
kasutage mis tahes dokumenditüübi printimiseks määratud printerisse

Märkus. Mõnel dokumenditüübil pole printimisega seotud rakendust. Mõnel pole "printimise" toimingut täpsustatud.

instagram story viewer