JavaScript chọn máy in

In. js chủ yếu được viết để giúp chúng tôi in các tệp PDF trực tiếp trong ứng dụng của mình mà không cần rời khỏi giao diện và không sử dụng phần mềm nhúng. Đối với các tình huống đặc biệt khi người dùng không cần mở hoặc tải xuống các tệp PDF mà thay vào đó, họ chỉ cần in chúng. Ví dụ, một tình huống mà điều này hữu ích là khi người dùng yêu cầu in các báo cáo được tạo ở phía máy chủ. Các báo cáo này được gửi lại dưới dạng tệp PDF. Không cần phải mở các tệp này trước khi in chúng. In. js cung cấp một cách nhanh chóng để in các tệp này trong ứng dụng của chúng tôi

1) Tải xuống và cài đặt

Bạn có thể tải xuống phiên bản mới nhất (v1. 2. 0) của In. js từ bản phát hành GitHub hoặc sử dụng một trong hai bước dưới đây tùy thuộc vào trình quản lý gói của bạn

  • Để cài đặt bằng npm
npm install print-js --save
  • Để cài đặt bằng cách sử dụng sợi
yarn add print-js

Sau khi cài đặt qua npm hoặc yarn, bạn nên nhập thư viện vào dự án của mình, như hình bên dưới, trước khi bắt đầu sử dụng

import print from 'print-js'
2) Bắt đầu
  • Đầu tiên, chúng ta cần bao gồm Print. thư viện js trên trang
<script src="print.js"></script>
  • Nếu bạn sẽ sử dụng tính năng phương thức, hãy bao gồm In. css trên trang
<link rel="stylesheet" type="text/css" href="print.css">

Đó là nó. Bây giờ bạn có thể sử dụng In. js trong các trang của bạn

Khi viết mã javascript của bạn, hãy nhớ rằng thư viện chiếm một biến toàn cục của printJS

3) Sử dụng In. js

Bây giờ, chúng tôi đã cài đặt và nhập thư viện chính xác, hãy bắt đầu sử dụng nó

4 loại tài liệu bạn có thể in bằng Print. js

i) PDF (Mặc định)

Cách sử dụng cơ bản của nó là gọi printJS() và chỉ cần chuyển vào một URL tài liệu PDF

printJS('docs/PrintJS.pdf')

ii) HTML

Để in các phần tử HTML, theo cách tương tự, hãy nhập phần tử id và nhập

printJS('myElementId', 'html')

iii) HÌNH ẢNH

Đối với các tệp hình ảnh, ý tưởng là như nhau, nhưng bạn cần chuyển đối số thứ hai

printJS('images/PrintJS.jpg', 'image')

iv) JSON

Khi in dữ liệu JSON, hãy nhập dữ liệu, loại và thuộc tính dữ liệu mà bạn muốn in

printJS(
{
printable: myData,
type: 'json',
properties: ['prop1', 'prop2', 'prop3']
}
);
4) Ví dụ

Lý thuyết đủ rồi, bây giờ chúng ta hãy xem một số minh họa hữu ích về cách chúng ta có thể sử dụng thư viện này để hoàn thành một số công việc in ấn tốt trên trang web của mình

1. In biểu mẫu HTML

In. js chấp nhận một đối tượng có đối số. Hãy in biểu mẫu HTML với tiêu đề tùy chỉnh ngay bây giờ

In biểu mẫu HTML có tiêu đề bằng Print. js

2. In ảnh

Để in nhiều hình ảnh cùng nhau, chúng ta có thể truyền một mảng hình ảnh. Chúng ta cũng có thể chuyển kiểu để áp dụng cho từng hình ảnh

In nhiều ảnh đã tạo kiểu cùng nhau bằng Print. js

3. In dữ liệu JSON

In dữ liệu JSON dưới dạng bảng bằng Print. js

4. In dữ liệu JSON được tạo kiểu

Bây giờ chúng ta có thể thêm các kiểu tùy chỉnh vào bảng dữ liệu của mình cũng như tùy chỉnh văn bản tiêu đề bảng bằng cách gửi một mảng đối tượng

In dữ liệu JSON được tạo kiểu dưới dạng bảng

5. Xử lý lỗi khi in PDF

Bạn cũng có thể xử lý lỗi bằng cách sử dụng phương thức onError() do print cung cấp. js và hiển thị chúng cho người dùng bằng các cảnh báo như trong ví dụ bên dưới

In. js Xử lý lỗi5) Khả năng tương thích với trình duyệt

kể từ khi in. js là một thư viện khá mới, do đó, hiện tại, không phải tất cả các tính năng của thư viện đều hoạt động giữa các trình duyệt. Tuy nhiên, hầu hết các trình duyệt hàng đầu đều hỗ trợ tất cả các loại tài liệu mà thư viện tuyệt vời này cho phép chúng tôi in. Dưới đây là kết quả kiểm tra được thực hiện với các trình duyệt chính này, sử dụng các phiên bản mới nhất của chúng

Tín dụng. https. //printjs. cáu kỉnh. com/

Các bài kiểm tra đã được thực hiện bằng công cụ kiểm tra trình duyệt chéo do BrowserStack cung cấp

Vậy là xong về thư viện Javascript hữu ích này. Tôi hy vọng thông tin được cung cấp trong bài viết này cung cấp giá trị cho bạn và giúp bạn đơn giản hóa cũng như tối ưu hóa các tác vụ in trong tương lai trên ứng dụng web của mình

Một truy vấn xuất hiện rất nhiều trong các diễn đàn Javascript khác nhau hỏi làm thế nào để gửi trang trực tiếp đến máy in mà không hiển thị hộp thoại in trước

Thay vì chỉ nói với bạn rằng điều đó không thể thực hiện được, có lẽ một lời giải thích về lý do tại sao một tùy chọn như vậy là không thể sẽ hữu ích hơn

Hộp thoại in nào hiển thị khi ai đó nhấn nút in trong trình duyệt của họ hoặc cửa sổ Javascript. print() chạy tùy thuộc vào hệ điều hành và máy in nào được cài đặt trên máy tính

Vì hầu hết mọi người chạy Windows trên máy tính của họ, trước tiên hãy mô tả cách thiết lập in hoạt động trên hệ điều hành đó. Hệ điều hành *nix và Mac hơi khác nhau về chi tiết nhưng nhìn chung được thiết lập tương tự nhau

Hộp thoại in

Có hai phần trong hộp thoại in trên Windows. Cái đầu tiên trong số này là một phần của API Windows (Giao diện lập trình ứng dụng). API là một tập hợp các đoạn mã phổ biến được giữ trong các tệp DLL (Thư viện liên kết động) khác nhau là một phần của hệ điều hành Windows. Bất kỳ chương trình Windows nào cũng có thể (và nên) gọi API để thực hiện các chức năng phổ biến, chẳng hạn như hiển thị hộp thoại In để nó hoạt động theo cùng một cách trong tất cả các chương trình và không có các tùy chọn khác nhau ở những nơi khác nhau như cách tùy chọn in đã làm trong DOS . API Hộp thoại In cũng cung cấp một giao diện chung cho phép tất cả các chương trình truy cập vào cùng một bộ trình điều khiển máy in thay vì các nhà sản xuất máy in phải tạo phần mềm trình điều khiển cho máy in của họ cho từng chương trình riêng lẻ muốn sử dụng nó

Trình điều khiển máy in là nửa còn lại của hộp thoại in. Có một số ngôn ngữ khác nhau mà các máy in khác nhau hiểu rằng chúng sử dụng để kiểm soát cách in trang (ví dụ:. PCL5 và Postcript). Trình điều khiển máy in hướng dẫn Print API cách dịch định dạng in nội bộ tiêu chuẩn mà hệ điều hành hiểu được sang ngôn ngữ đánh dấu tùy chỉnh mà máy in cụ thể hiểu được. Nó cũng điều chỉnh các tùy chọn mà hộp thoại In hiển thị để phản ánh các tùy chọn được cung cấp bởi máy in cụ thể

Vận hành máy in

Một máy tính cá nhân có thể không cài đặt máy in, nó có thể có một máy in cục bộ, nó có thể có quyền truy cập vào một số máy in qua mạng, thậm chí nó có thể được thiết lập để in thành PDF hoặc tệp in được định dạng sẵn. Khi có nhiều hơn một "máy in" được xác định, một trong số chúng được chỉ định là máy in mặc định, nghĩa là nó là máy hiển thị chi tiết của nó trong hộp thoại in khi nó xuất hiện lần đầu

Hệ điều hành theo dõi máy in mặc định và xác định máy in đó với các chương trình khác nhau trên máy tính. Điều này cho phép các chương trình chuyển một tham số bổ sung cho API in để yêu cầu nó in trực tiếp tới máy in mặc định mà không hiển thị hộp thoại in trước. Nhiều chương trình có hai tùy chọn in khác nhau - một mục menu hiển thị hộp thoại in và nút in nhanh trên thanh công cụ gửi trực tiếp đến máy in mặc định

Khi bạn có một trang web trên internet mà khách truy cập của bạn sẽ in, bạn gần như không có thông tin về (những) máy in nào họ có sẵn. Hầu hết các máy in trên thế giới đều được cấu hình để in trên giấy A4 nhưng bạn không thể đảm bảo rằng máy in được thiết lập theo mặc định đó. Một quốc gia Bắc Mỹ sử dụng khổ giấy không chuẩn, ngắn hơn và rộng hơn A4. Hầu hết các máy in được thiết lập để in ở chế độ dọc (trong đó chiều hẹp hơn là chiều rộng nhưng một số máy in có thể được đặt ở chế độ ngang, trong đó kích thước dài hơn là chiều rộng. Tất nhiên, mỗi và mọi máy in cũng có các lề mặc định khác nhau ở đầu, cuối và hai bên của trang ngay cả trước khi chủ sở hữu vào và thay đổi tất cả các cài đặt để có được máy in theo cách họ muốn

Với tất cả các yếu tố này, bạn không có cách nào để biết liệu máy in mặc định có cấu hình mặc định sẽ in trang web của bạn trên khổ A3 với lề không đáng kể hay khổ A5 với lề lớn (chừa lại một khoảng nhỏ hơn một con tem bưu chính ở giữa . Bạn có thể cho rằng hầu hết sẽ có vùng in trên trang khoảng 16cm x 25cm (cộng hoặc trừ 80%)

Nhu cầu in ấn

Vì các máy in khác nhau rất nhiều giữa những khách truy cập tiềm năng của bạn (có ai đó đã đề cập đến máy in laser, máy in phun, chỉ màu hoặc đen trắng, chất lượng ảnh, chế độ nháp, v.v.) nên bạn không có cách nào để biết họ sẽ cần làm gì để in . có lẽ họ có một máy in riêng hoặc trình điều khiển thứ hai cho cùng một máy in cung cấp các cài đặt hoàn toàn khác dành riêng cho các trang web

Tiếp theo, là vấn đề về những gì họ có thể muốn in. Họ muốn toàn bộ trang hay họ chỉ chọn một phần của trang mà họ muốn in?

Nhu cầu trả lời tất cả những câu hỏi này khiến hộp thoại in xuất hiện bất cứ khi nào họ muốn in thứ gì đó là điều cần thiết để họ có thể đảm bảo rằng tất cả các cài đặt đều chính xác trước khi nhấn nút in. Hầu hết các trình duyệt cũng cung cấp khả năng thêm nút "in nhanh" vào một trong các thanh công cụ của trình duyệt để cho phép trang được in ra máy in mặc định bằng cách sử dụng cài đặt trình duyệt mặc định về nội dung sẽ được in và cách in.

Javascript

Các trình duyệt không cung cấp vô số cài đặt trình duyệt và máy in này cho Javascript. Javascript chủ yếu liên quan đến việc sửa đổi trang web hiện tại và do đó, các trình duyệt web cung cấp thông tin tối thiểu về chính trình duyệt và gần như không có thông tin nào về hệ điều hành có sẵn cho Javascript vì Javascript không cần biết những điều đó để thực hiện những điều đó mà Javascript là

Bảo mật cơ bản nói rằng nếu thứ gì đó như Javascript không cần biết về hệ điều hành và cấu hình trình duyệt để thao tác trên trang web thì không nên cung cấp thông tin đó. Không giống như Javascript nên có thể thay đổi cài đặt máy in thành các giá trị phù hợp để in trang hiện tại vì đó không phải là Javascript dành cho - đó là công việc của hộp thoại in. Do đó, các trình duyệt chỉ cung cấp cho Javascript những thông tin mà Javascript cần biết, chẳng hạn như kích thước màn hình, không gian có sẵn trong cửa sổ trình duyệt để hiển thị trang và những thông tin tương tự giúp Javascript tìm ra cách trình bày trang. Trang web hiện tại là mối quan tâm duy nhất của Javascript

mạng nội bộ

Mạng nội bộ tất nhiên là một vấn đề hoàn toàn khác. Với mạng nội bộ, bạn biết rằng mọi người truy cập trang đang sử dụng một trình duyệt cụ thể (thường là phiên bản Internet Explorer gần đây) và có độ phân giải màn hình cụ thể cũng như quyền truy cập vào các máy in cụ thể. Điều này có nghĩa là trên mạng nội bộ có thể in trực tiếp tới máy in mà không hiển thị hộp thoại in vì người viết trang web biết nó sẽ được in trên máy in nào

Do đó, trình thay thế Internet Explorer cho Javascript (được gọi là JScript) có thêm một chút thông tin về trình duyệt và hệ điều hành mà chính Javascript có. Các máy tính riêng lẻ trên mạng chạy mạng nội bộ có thể được định cấu hình để cho phép cửa sổ JScript. lệnh print() ghi trực tiếp vào máy in mà không hiển thị hộp thoại in. Cấu hình này sẽ cần được thiết lập riêng lẻ trên từng máy khách và nằm ngoài phạm vi của một bài viết về Javascript

Đối với các trang web trên Internet, bạn hoàn toàn không thể thiết lập lệnh Javascript để gửi trực tiếp đến máy in mặc định. Nếu khách truy cập của bạn muốn làm điều đó, họ sẽ phải thiết lập nút "in nhanh" của riêng mình trên thanh công cụ của trình duyệt

Trích dẫn bài viết này

Định dạng

trích dẫn của bạn

Chapman, Stephen. "In trực tiếp tới máy in. "ThinkCo. https. //www. suy nghĩ. com/print-direct-to-printer-2037449 (truy cập ngày 5 tháng 2 năm 2023)

Làm cách nào để in ra máy in bằng JavaScript?

JavaScript không có bất kỳ đối tượng in hoặc phương thức in nào. Bạn không thể truy cập các thiết bị đầu ra từ JavaScript. Ngoại lệ duy nhất là bạn có thể gọi cửa sổ. phương thức print() trong trình duyệt để in nội dung của cửa sổ hiện tại .
Trong phần này, chúng ta sẽ thảo luận về phương thức print() trong ngôn ngữ JavaScript. Phương thức print() được dùng để in các nội dung đang hiển thị như trang web, văn bản, hình ảnh, v.v. , trên màn hình máy tính .

Tôi có thể đặt cài đặt in cửa sổ bằng JavaScript không?

Cửa sổ. Phương thức print() gọi plugin hỗ trợ in tích hợp sẵn của trình duyệt để in trang DOM hiện tại. bạn có thể kiểm tra tài liệu, nó không hỗ trợ bất kỳ đối số hoặc cài đặt nào. để thiết lập in, bạn chỉ có thể sử dụng GUI của trình duyệt ( cũ. bật hoặc tắt đồ họa nền, v.v. )

Làm cách nào để lấy tên máy in mặc định trong JavaScript?

Điều này là không thể .