Εκτύπωση απευθείας στον εκτυπωτή με JavaScript

Ένα ερώτημα που εμφανίζεται πολύ στα διάφορα φόρουμ Javascript ρωτά πώς να στείλετε τη σελίδα απευθείας στον εκτυπωτή χωρίς πρώτα να εμφανίσετε εκτύπωσης.

Αντί να σας το λέω μόνο αυτό δεν μπορεί να γίνει ίσως μια εξήγηση για το γιατί μια τέτοια επιλογή δεν είναι δυνατή θα ήταν πιο χρήσιμη.

Το οποίο παράθυρο διαλόγου εκτύπωσης εμφανίζεται όταν κάποιος πιέσει το κουμπί εκτύπωσης στο πρόγραμμα περιήγησής τους ή στο Javascript window.print () η εκτέλεση μεθόδου εξαρτάται από το λειτουργικό σύστημα και ποιες εκτυπωτές έχουν εγκατασταθεί στον υπολογιστή.

Καθώς οι περισσότεροι χρησιμοποιούν τα Windows στον υπολογιστή τους, ας περιγράψουμε πρώτα πώς λειτουργεί η ρύθμιση εκτύπωσης σε αυτό το λειτουργικό σύστημα. Τα λειτουργικά συστήματα * nix και Mac διαφέρουν ελαφρώς στις λεπτομέρειες, αλλά γενικά είναι παρόμοια.

Print Dialog

Υπάρχουν δύο τμήματα στο πλαίσιο διαλόγου εκτύπωσης στα Windows. Το πρώτο από αυτά είναι μέρος του API των Windows (Application Programming Interface). Το API είναι ένα σύνολο κοινών τεμαχίων κώδικα που διατηρούνται στα διάφορα DLL (

instagram viewer
Βιβλιοθήκη δυναμικής σύνδεσης) αρχεία που είναι μέρος των Windows λειτουργικό σύστημα. Οποιοδήποτε πρόγραμμα των Windows μπορεί (και πρέπει) να καλέσει το API να εκτελεί κοινές λειτουργίες, όπως την εμφάνιση του πλαισίου διαλόγου εκτύπωσης έτσι ώστε να το κάνει να δουλεύουν με τον ίδιο τρόπο σε όλα τα προγράμματα και να μην έχουν διαφορετικές επιλογές σε διαφορετικά μέρη με τον τρόπο που επέστρεψε η επιλογή εκτύπωσης στο πρόγραμμα DOS ημέρες. Το API διαλόγου εκτύπωσης παρέχει επίσης μια κοινή διεπαφή που επιτρέπει σε όλα τα προγράμματα να έχουν πρόσβαση στο ίδιο σύνολο οδηγών εκτυπωτή μάλλον από ό, τι οι κατασκευαστές εκτυπωτών πρέπει να δημιουργήσουν λογισμικό προγράμματος οδήγησης για τον εκτυπωτή τους για κάθε μεμονωμένο πρόγραμμα που ήθελε να χρησιμοποιήσει το.

Τα προγράμματα οδήγησης εκτυπωτή είναι το άλλο μισό του διαλόγου εκτύπωσης. Υπάρχουν πολλές διαφορετικές γλώσσες που διαφορετικοί εκτυπωτές κατανοούν ότι χρησιμοποιούν για τον έλεγχο της εκτύπωσης της σελίδας (π.χ. PCL5 και Postscript). Το πρόγραμμα οδήγησης εκτυπωτή καθοδηγεί το API εκτύπωσης σχετικά με τον τρόπο μετάφρασης της τυπικής εσωτερικής μορφής εκτύπωσης ότι το λειτουργικό σύστημα κατανοεί στην προσαρμοσμένη γλώσσα σήμανσης που έχει ο συγκεκριμένος εκτυπωτής καταλαβαίνει. Ρυθμίζει επίσης τις επιλογές που εμφανίζει το παράθυρο διαλόγου "Εκτύπωση" ώστε να αντικατοπτρίζει τις επιλογές που προσφέρει ο συγκεκριμένος εκτυπωτής.

Λειτουργία του εκτυπωτή

Ένας μεμονωμένος υπολογιστής μπορεί να μην έχει εγκατεστημένους εκτυπωτές, ίσως να έχει έναν τοπικό εκτυπωτή πρόσβαση σε πολλούς εκτυπωτές σε ένα δίκτυο, μπορεί να ρυθμιστεί ακόμη και για εκτύπωση σε PDF ή σε προτυπωμένη εκτύπωση αρχείο. Όπου ορίζονται περισσότεροι από ένας "εκτυπωτές", ένας από αυτούς ονομάζεται προεπιλεγμένος εκτυπωτής, πράγμα που σημαίνει ότι αυτός που εμφανίζει τα στοιχεία του στο παράθυρο διαλόγου εκτύπωσης όταν εμφανιστεί για πρώτη φορά.

Το λειτουργικό σύστημα παρακολουθεί τον προεπιλεγμένο εκτυπωτή και προσδιορίζει τον εκτυπωτή στα διάφορα προγράμματα του υπολογιστή. Αυτό επιτρέπει στα προγράμματα να περάσουν μια πρόσθετη παράμετρο στο API εκτύπωσης λέγοντάς το να εκτυπώσει απευθείας στον προεπιλεγμένο εκτυπωτή χωρίς να εμφανίσει πρώτα το διάλογο εκτύπωσης. Πολλά προγράμματα έχουν δύο διαφορετικές επιλογές εκτύπωσης - μια καταχώρηση μενού που εμφανίζει το παράθυρο διαλόγου εκτύπωσης και ένα κουμπί γρήγορης εκτύπωσης της γραμμής εργαλείων που στέλνει απευθείας στον προεπιλεγμένο εκτυπωτή.

Όταν έχετε μια ιστοσελίδα στο διαδίκτυο που οι επισκέπτες σας πρόκειται να εκτυπώσετε, έχετε δίπλα σε καμία πληροφορία σχετικά με ποιο εκτυπωτή (ες) που έχουν στη διάθεσή τους. Οι περισσότεροι εκτυπωτές σε όλο τον κόσμο έχουν ρυθμιστεί ώστε να εκτυπώνονται σε χαρτί A4, αλλά δεν μπορείτε να εγγυηθείτε ότι ο εκτυπωτής έχει ρυθμιστεί σε αυτή την προεπιλογή. Μια χώρα της Βόρειας Αμερικής χρησιμοποιεί ένα μη τυποποιημένο μέγεθος χαρτιού που είναι μικρότερο και μεγαλύτερο από το A4. Οι περισσότεροι εκτυπωτές έχουν ρυθμιστεί για εκτύπωση σε κατάσταση πορτραίτου (όπου η στενότερη κατεύθυνση είναι το πλάτος, αλλά μερικές μπορεί να οριστούν στο τοπίο όπου η μεγαλύτερη διάσταση είναι το πλάτος. Φυσικά, κάθε εκτυπωτής έχει επίσης διαφορετικά προεπιλεγμένα περιθώρια στην κορυφή, στο κάτω μέρος και τις πλευρές του ακόμη και πριν από την είσοδο των ιδιοκτητών και να αλλάξετε όλες τις ρυθμίσεις για να πάρετε τον εκτυπωτή με τον τρόπο που αυτοί θέλω.

Δεδομένων όλων αυτών των παραγόντων, δεν μπορείτε να διαπιστώσετε εάν ο προεπιλεγμένος εκτυπωτής με την προεπιλεγμένη διαμόρφωση του θα εκτυπώσει τον ιστό σας σε A3 με αμελητέα περιθώρια ή σε A5 με τεράστια περιθώρια (αφήνοντας λίγο περισσότερο από μια περιοχή μεγέθους γραμματοσήμων στη μέση σελίδα). Μπορείτε πιθανώς να υποθέσετε ότι οι περισσότεροι θα έχουν μια περιοχή εκτύπωσης στη σελίδα περίπου 16cm x 25cm (συν ή μείον 80%).

Εκτύπωση Αναγκών

Δεδομένου ότι οι εκτυπωτές ποικίλλουν τόσο πολύ μεταξύ των πιθανών επισκεπτών σας (κάποιος ανέφερε εκτυπωτές λέιζερ, εκτυπωτές inkjet, έγχρωμες ή ασπρόμαυρες μόνο, ποιότητα φωτογραφιών, λειτουργία πρόχειρης προβολής και πολλά άλλα) δεν έχετε τρόπο να πείτε τι θα πρέπει να κάνουν για να εκτυπώσουν τη σελίδα σας σε λογική μορφή. ίσως έχουν ξεχωριστό εκτυπωτή ή δεύτερο πρόγραμμα οδήγησης για τον ίδιο εκτυπωτή, παρέχοντας εντελώς διαφορετικές ρυθμίσεις ειδικά για ιστοσελίδες.

Στη συνέχεια, έρχεται το θέμα του τι μπορεί να θέλετε να εκτυπώσετε. Θέλουν ολόκληρη τη σελίδα ή έχουν επιλέξει μόνο ένα μέρος της σελίδας που θέλουν να εκτυπώσουν; Αν ο ιστότοπός σας χρησιμοποιεί πλαίσια, θέλουν να εκτυπώσουν όλα τα πλαίσια με τον τρόπο που εμφανίζονται στη σελίδα, θέλουν να εκτυπώσουν κάθε καρέ ξεχωριστά ή απλώς θέλουν να εκτυπώσουν ένα συγκεκριμένο πλαίσιο;

Η ανάγκη απάντησης σε όλες αυτές τις ερωτήσεις καθιστά απαραίτητο να εμφανίζεται το παράθυρο διαλόγου εκτύπωσης κάθε φορά που είναι θέλετε να εκτυπώσετε κάτι ώστε να μπορούν να βεβαιωθούν ότι οι ρυθμίσεις είναι όλες σωστές πριν χτυπήσουν την εκτύπωση κουμπί. Τα περισσότερα προγράμματα περιήγησης παρέχουν επίσης τη δυνατότητα να προσθέσετε ένα κουμπί "γρήγορης εκτύπωσης" σε μια από τις γραμμές εργαλείων του προγράμματος περιήγησης που θα επιτρέψετε τη σελίδα που θα εκτυπωθεί στον προεπιλεγμένο εκτυπωτή χρησιμοποιώντας τις προεπιλεγμένες ρυθμίσεις του προγράμματος περιήγησης ως προς το τι πρόκειται να εκτυπωθεί και πως.

Javascript

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

Η βασική ασφάλεια λέει ότι αν κάτι σαν Javascript δεν χρειάζεται να γνωρίζει το λειτουργικό σύστημα και διαμόρφωση του προγράμματος περιήγησης για να χειριστεί την ιστοσελίδα, τότε δεν πρέπει να παρέχεται με αυτήν πληροφορίες. Δεν είναι όπως το Javascript θα πρέπει να είναι σε θέση να αλλάξει τις ρυθμίσεις του εκτυπωτή σε κατάλληλες τιμές για η εκτύπωση της τρέχουσας σελίδας επειδή δεν είναι αυτό που είναι το Javascript για - αυτή είναι η δουλειά του print διαλόγου. Έτσι, οι περιηγητές κάνουν διαθέσιμα για Javascript μόνο τα πράγματα που πρέπει να γνωρίζει η Javascript, όπως το μέγεθος της οθόνης, το διαθέσιμο χώρο στο παράθυρο του προγράμματος περιήγησης για να εμφανίσετε τη σελίδα και παρόμοια πράγματα που βοηθούν το Javascript να επεξεργαστεί τον τρόπο με τον οποίο εκτίθεται η σελίδα. Η τρέχουσα ιστοσελίδα είναι η μοναδική ανησυχία του Javascript.

Ενδοδίκτυο

Τα intranets είναι φυσικά ένα τελείως διαφορετικό θέμα. Με ένα intranet, ξέρετε ότι όλοι πρόσβαση στη σελίδα χρησιμοποιεί ένα συγκεκριμένο πρόγραμμα περιήγησης (συνήθως μια πρόσφατη έκδοση του Internet Explorer) και έχει συγκεκριμένη ανάλυση οθόνης και πρόσβαση σε συγκεκριμένους εκτυπωτές. Αυτό σημαίνει ότι έχει νόημα σε ένα intranet να είναι δυνατή η εκτύπωση απευθείας στον εκτυπωτή χωρίς εμφανίζοντας το παράθυρο διαλόγου εκτύπωσης επειδή το άτομο που γράφει την ιστοσελίδα γνωρίζει ποιος εκτυπωτής θα είναι εκτυπώνονται σε.

Ο υποκατάστατος του Javascript από το Internet Explorer (ονομάζεται JScript) έχει επομένως λίγο περισσότερες πληροφορίες σχετικά με το πρόγραμμα περιήγησης και το λειτουργικό σύστημα που κάνει το ίδιο το Javascript. Οι μεμονωμένοι υπολογιστές στο δίκτυο που εκτελούν το intranet ενδέχεται να είναι ρυθμισμένοι ώστε να επιτρέπουν το JScript window.print () εντολή γραφής απευθείας στον εκτυπωτή χωρίς να εμφανίζεται το παράθυρο διαλόγου εκτύπωσης. Αυτή η ρύθμιση θα πρέπει να ρυθμιστεί ξεχωριστά σε κάθε υπολογιστή-πελάτη και υπερβαίνει το πεδίο εφαρμογής ενός άρθρου σχετικά με το Javascript.

Όταν πρόκειται για ιστοσελίδες στο Διαδίκτυο δεν υπάρχει απολύτως κανένας τρόπος που μπορείτε να δημιουργήσετε ένα Εντολή Javascript για να στείλετε απευθείας στον προεπιλεγμένο εκτυπωτή. Εάν οι επισκέπτες σας το επιθυμούν, θα πρέπει να δημιουργήσουν το δικό τους κουμπί "γρήγορης εκτύπωσης" στη γραμμή εργαλείων του προγράμματος περιήγησης.

instagram story viewer