Πληροφορίες

Εκτύπωση διαφορετικών τύπων εγγράφων από τους Δελφούς

Εκτύπωση διαφορετικών τύπων εγγράφων από τους Δελφούς

Εάν η εφαρμογή Delphi πρέπει να λειτουργεί σε διάφορους τύπους αρχείων, μία από τις εργασίες που μπορεί να έχετε για την εφαρμογή σας είναι να επιτρέψετε στο χρήστη της εφαρμογής να εκτυπώσει ένα αρχείο, ανεξάρτητα από τον τύπο του αρχείου.

Οι περισσότερες εφαρμογές προσανατολισμένες σε έγγραφα, όπως το MS Word, το MS Excel ή το Adobe, μπορούν εύκολα να εκτυπώσουν έγγραφα που δημιουργήθηκαν σε αυτό το πρόγραμμα. Για παράδειγμα, το Microsoft Word αποθηκεύει το κείμενο που γράφετε σε έγγραφα με επέκταση DOC. Δεδομένου ότι το Word καθορίζει ποια είναι τα "ακατέργαστα" περιεχόμενα ενός αρχείου .DOC, γνωρίζει τον τρόπο εκτύπωσης αρχείων .DOC. Το ίδιο ισχύει και για κάθε τύπο "γνωστού" αρχείου που περιέχει κάποιες εκτυπώσιμες πληροφορίες.

Τι γίνεται αν χρειάζεστε να τυπώσετε διάφορους τύπους εγγράφων / αρχείων από την αίτησή σας; Μπορείτε να μάθετε πώς να στέλνετε το αρχείο στον εκτυπωτή ώστε να εκτυπωθεί σωστά;

Εκτύπωση από τους Δελφούς

Μπορούμε να ζητήσουμε από τα Windows ποια εφαρμογή μπορεί να εκτυπώσει, για παράδειγμα, ένα αρχείο PDF. Ή καλύτερα, μπορούμε να πούμε στα Windows, εδώ είναι ένα αρχείο PDF, να το στείλετε στην συνδεδεμένη εφαρμογή / υπεύθυνη για την εκτύπωση αρχείων PDF.

Για να το κάνετε αυτό, ανοίξτε την Εξερεύνηση των Windows, περιηγηθείτε σε έναν κατάλογο που περιέχει μερικά εκτυπώσιμα αρχεία. Για τους περισσότερους τύπους αρχείων στο σύστημά σας, όταν κάνετε δεξί κλικ σε ένα αρχείο στην Εξερεύνηση των Windows, θα εντοπίσετε την εντολή "Εκτύπωση". Η εκτέλεση της εντολής Print shell θα έχει ως αποτέλεσμα το αρχείο να αποσταλεί στον προεπιλεγμένο εκτυπωτή. Λοιπόν, αυτό ακριβώς θέλουμε: για έναν τύπο αρχείου, καλέστε μια μέθοδο που θα στείλει το αρχείο στη σχετική εφαρμογή για εκτύπωση. Η συνάρτηση που ακολουθούμε είναι η λειτουργία API ShellExecute.

ShellExecute: Εκτύπωση / ΕκτύπωσηTo

Ωστόσο, η ShellExecute μπορεί να κάνει πολύ περισσότερα. Η ShellExecute μπορεί να χρησιμοποιηθεί για να ξεκινήσει μια εφαρμογή, να ανοίξει την Εξερεύνηση των Windows, να ξεκινήσει μια αναζήτηση που ξεκινάει από τον καθορισμένο κατάλογο και - τι μας ενδιαφέρει περισσότερο - να τυπώσουμε το καθορισμένο αρχείο.

Καθορίστε τον εκτυπωτή

Χρησιμοποιώντας την παραπάνω κλήση, ένα έγγραφο "document.doc" που βρίσκεται στη ρίζα της μονάδας C θα σταλεί στον προεπιλεγμένο εκτυπωτή των Windows. Η ShellExecute χρησιμοποιεί πάντα τον προεπιλεγμένο εκτυπωτή για τη "εκτύπωση". Τι θα πρέπει να κάνετε εάν θέλετε να εκτυπώσετε σε διαφορετικό εκτυπωτή, τι γίνεται αν θέλετε να επιτρέψετε στον χρήστη να αλλάξει τον εκτυπωτή;

Η εντολή PrintTo Shell

Πριν αντιγράψετε και επικολλήσετε: η παγκόσμια μεταβλητή εκτυπωτή (τύπος TPrinter) που είναι διαθέσιμη σε όλα τα προγράμματα Delphi μπορεί να χρησιμοποιηθεί για τη διαχείριση τυχόν εκτύπωσης που εκτελείται από μια εφαρμογή. Ο εκτυπωτής ορίζεται στη μονάδα "εκτυπωτές", η ShellExecute ορίζεται στη μονάδα "shellapi".

  1. Πέτα ένα TComboBox σε μια φόρμα. Ονομάστε το "cboPrinter". Ορισμός στυλ σε csDropDownLidt
  2. Τοποθετήστε τις επόμενες δύο γραμμές στο πρόγραμμα επεξεργασίας OnCreate ακόμη και:

    // διαθέσιμοι εκτυπωτές στο σύνθετο πλαίσιοcboPrinter.Items.Assign (printer.Printers);// προεπιλέξτε τον προεπιλεγμένο / ενεργό εκτυπωτήcboPrinter.ItemIndex: = printer.PrinterIndex;

χρησιμοποιήστε για να εκτυπώσετε οποιοδήποτε τύπο εγγράφου σε έναν συγκεκριμένο εκτυπωτή

Σημείωση: ορισμένοι τύποι εγγράφων δεν έχουν εφαρμογή που σχετίζεται με την εκτύπωση. Ορισμένοι δεν έχουν καθορίσει τη δράση "printto".