Hvis din Delphi applikationen skal fungere på forskellige typer filer, en af de opgaver, du måtte have til din applikation, er at give brugeren af applikationen mulighed for at udskrive en fil, uanset hvilken filtype det er.
De fleste dokumentorienterede applikationer, såsom MS Word, MS Excel eller Adobe, kan let udskrive dokumenter, der er oprettet i dette program. For eksempel, Microsoft Word gemmer teksten, du skriver i dokumenter med DOC-udvidelse. Da Word bestemmer, hvad der er det "rå" indhold i en .DOC-fil, ved det, hvordan man udskriver .DOC-filer. Det samme gælder for enhver "kendt" filtype, der indeholder nogle udskrivbare oplysninger.
Hvad hvis du har brug for at udskrive forskellige typer dokumenter / filer fra din ansøgning? Kan du vide, hvordan du sender filen til printeren, så den kan udskrives korrekt?
Udskriv fra Delphi
Vi kan spørge Windows, hvilket program der kan udskrives, f.eks. En PDF-fil. Eller endnu bedre, vi kan fortælle Windows, her er en PDF-fil, sende den til den tilknyttede applikation / ansvarlig for udskrivning af PDF-filer.
For at gøre dette skal du åbne Windows Stifinder, navigere til et bibliotek, der indeholder nogle udskrivbare filer. Når du højreklikker på en fil i Windows Stifinder for de fleste af filtyperne på dit system, finder du kommandoen "Udskriv". Udførelse af kommandoen Print shell medfører, at filen sendes til standardprinteren. Nå, det er nøjagtigt, hvad vi ønsker: til en filtype skal du kalde en metode, der vil sende filen til det tilknyttede program til udskrivning. Den funktion, vi er efter, er ShellExecute API-funktionen.
ShellExecute: Print / PrintTo
ShellExecute kan dog gøre meget mere. ShellExecute kan bruges til starte en applikation, åbn Windows Stifinder, start en søgning, der begynder i det angivne bibliotek, og - hvad der er mest interessant for os - udskriv den angivne fil.
Angiv printer
Ved hjælp af ovennævnte opkald sendes et dokument "document.doc" placeret på roden til C-drevet til Windows standardprinter. ShellExecute bruger altid standardprinteren til "print" -handlingen. Hvad hvis du har brug for at udskrive til en anden printer, hvad hvis du vil tillade brugeren at skifte printer?
PrintTo Shell-kommandoen
Inden du kopierer og indsætter: Den globale variabel Printer (TPrinter-type), der er tilgængelig i alle Delphi-programmer, kan bruges til at styre enhver udskrivning, der udføres af et program. Printeren er defineret i "printere" -enheden, ShellExecute er defineret i "shellapi" enheden.
- Slip en TComboBox på en formular. Navn det "cboPrinter". Indstil stil til csDropDownLidt
- Sæt de næste to linjer i formens OnCreate jævn handler:
// har tilgængelige printere i kombinationsboksencboPrinter. Elementer. Tildel (printer. Printere);// forvalgte standard / aktiv printercboPrinter. ItemIndex: = printer. PrinterIndex;
bruges til at udskrive en hvilken som helst dokumenttype til en specificeret printer
Bemærk: Visse dokumenttyper har ikke et program, der er forbundet med udskrivning. Nogle har ikke "printto" -handlingen specificeret.