Bármely típusú dokumentum kinyomtatása a Delphi segítségével

Ha a Delphi Az alkalmazásnak különféle fájltípusokon kell működnie, az alkalmazáshoz kapcsolódó egyik feladat az, hogy lehetővé tegye az alkalmazás felhasználójának, hogy kinyomtasson egy fájlt, függetlenül a fájltípustól.

A legtöbb dokumentum-orientált alkalmazás, például az MS Word, az MS Excel vagy az Adobe könnyen kinyomtathatja az abban a programban létrehozott dokumentumokat. Például, Microsoft A Word a dokumentumokba írott szöveget DOC kiterjesztéssel menti. Mivel a Word határozza meg a .DOC fájl "nyers" tartalmát, tudja, hogyan kell kinyomtatni .DOC fájlokat. Ugyanez vonatkozik minden olyan "ismert" fájltípusra, amely nyomtatható információkat tartalmaz.

Mi van, ha különféle típusú dokumentumokat / fájlokat kell nyomtatnia az alkalmazásból? Tudja-e, hogyan kell elküldeni a fájlt a nyomtatóra annak megfelelő nyomtatása érdekében?

Nyomtatás Delphiből

Megkérdezhetjük a Windows-t, hogy mely alkalmazás nyomtathat ki, például egy PDF-fájlt. Vagy még jobb, ha megmondjuk a Windowsnak, itt van egy PDF fájl, és elküldi azt az alkalmazáshoz társított / a PDF fájlok nyomtatásáért felelősnek.

instagram viewer

Ehhez nyissa meg a Windows Intézőt, keresse meg a nyomtatható fájlokat tartalmazó mappát. A rendszerben található fájltípusok többségének jobb egérgombbal történő kattintásával a Windows Intézőben megtalálhatja a "Nyomtatás" parancsot. A Héj nyomtatása parancs végrehajtásával a fájlt az alapértelmezett nyomtatóra küldi el. Nos, pontosan ezt akarjuk: fájltípus esetén hívjon meg egy módszert, amely nyomtatás céljából elküldi a fájlt a társított alkalmazásnak. Az a funkció, amelyet követünk, a ShellExecute API függvény.

ShellExecute: Print / PrintTo

A ShellExecute azonban sokkal többet képes megtenni. A ShellExecute felhasználható rá indítson el egy alkalmazást, nyissa meg a Windows Intézőt, indítsa el a keresést a megadott könyvtárban, és - ami minket leginkább érdekel - nyomtassa ki a megadott fájlt.

Adja meg a nyomtatót

A fenti hívás felhasználásával a C meghajtó gyökérzetén található "document.doc" dokumentumot elküldjük a Windows alapértelmezett nyomtatójára. A ShellExecute mindig az alapértelmezett nyomtatót használja a "nyomtatás" művelethez. Mi lenne, ha más nyomtatóra kell nyomtatnia, mi lenne, ha engedélyezni akarja a felhasználónak a nyomtató cseréjét?

A PrintTo Shell parancs

Mielőtt lemásolná és beillesztné: az összes Delphi programban elérhető Printer globális változó (TPrinter típus) felhasználható az alkalmazás által végrehajtott nyomtatások kezelésére. A nyomtatót a "nyomtatók" egység, a ShellExecute a "shellapi" egység határozza meg.

  1. Dobjon el egy TComboBox-ot egy űrlapra. Nevezze "cboPrinter" -nek. Állítsa a stílust csDropDownLidt értékre
  2. Helyezze a következő két sort az űrlap OnCreate páros kezelőjébe:
    // rendelkezzen elérhető nyomtatókkal a kombinált mezőbencboPrinter. Terméket. Hozzárendelés (nyomtató. Nyomtatók);// előzetesen válassza ki az alapértelmezett / aktív nyomtatótcboPrinter. ItemIndex: = nyomtató. PrinterIndex;
Használhatja bármilyen dokumentumtípus nyomtatását egy megadott nyomtatóra

Megjegyzés: Egyes dokumentumtípusokhoz nincs nyomtatáshoz társított alkalmazás. Egyeseknél nincs megadva a "printto" művelet.