In Printing (In thô)
Tài liệu ERPNext tiếng Việt: In Printing (In thô)
Bản dịch máy từ tài liệu ERPNext chính thức. Chưa được rà soát toàn văn về thuật ngữ chuyên ngành. Cần đối chiếu bản gốc khi áp dụng nghiệp vụ.
Được giới thiệu từ Phiên bản 12
Gửi một chuỗi lệnh trực tiếp đến máy in bằng ngôn ngữ gốc của nó được gọi là In thô (Raw Printing).
Nhiều máy in nhiệt cần các lệnh thô này để thực hiện các chức năng như in mã vạch, in biên lai, in nhãn, v.v. In thô thường bỏ qua các trình điều khiển máy in, giúp quá trình này trở nên rất nhanh và đáng tin cậy. In thô cũng có khả năng thực hiện một số tính năng nâng cao như cắt giấy biên lai, mở ngăn kéo đựng tiền, v.v.
1. Thiết lập In thô trong ERPNext
1.1 Cài đặt ứng dụng QZ Tray trên máy tính khách
Tải xuống và cài đặt ứng dụng QZ Tray trên máy tính có kết nối máy in nhiệt của bạn. Ứng dụng này có sẵn tại trang web chính thức. Hiện tại, QZ Tray hỗ trợ Windows, macOS và Linux. Trong quá trình cài đặt, bạn sẽ được nhắc cài đặt Java nếu chưa có, vui lòng cài đặt Java để hoàn tất.
Hướng dẫn chi tiết hơn về việc cài đặt Ứng dụng QZ Tray có tại đây.
1.2 Tạo Định dạng in (Print Format) cho lệnh thô
Để gửi các lệnh thô tới máy in, trước tiên bạn cần tạo một định dạng in bằng các lệnh thô. Ngôn ngữ tạo khuôn mẫu Jinja được sử dụng trong các lệnh thô giống như trong định dạng in tùy chỉnh HTML.
Để tạo định dạng in mới cho In thô:
- Đi tới danh sách định dạng in: Trang chủ > Cài đặt > In ấn > Định dạng in
- Nhấp vào Mới.
- Chọn DocType phù hợp.
- Chọn các tùy chọn Định dạng tùy chỉnh và In thô.
- Điền vào trường Lệnh thô các lệnh cần thiết để gửi tới máy in.
- Nhấp Lưu.

Hiện tại, bất kỳ ngôn ngữ máy in dựa trên chuỗi nào cũng có thể được sử dụng trong trường Raw Commands của định dạng in. Việc viết các lệnh thô đòi hỏi kiến thức về ngôn ngữ gốc của máy in do nhà sản xuất cung cấp. Vui lòng tham khảo tài liệu dành cho nhà phát triển của nhà sản xuất máy in để biết cách viết các lệnh gốc của họ.
1.3 Kích hoạt In thô trong Cài đặt in
Để kích hoạt In thô:
- Đi tới: Trang chủ > Cài đặt > In ấn > Cài đặt in > In thô.
- Chọn tùy chọn Kích hoạt in thô.
- Lưu.
2. Các phương thức sử dụng in thô trong ERPNext
Có hai cách để gửi lệnh In thô tới máy in của bạn.
2.1 Nhấp in trên trang xem bản in
Để in một định dạng in lệnh thô từ chế độ xem bản in của Tài liệu:
- Chọn định dạng in phù hợp. Đối với định dạng in bằng Lệnh thô, thông báo "Không có bản xem trước" sẽ hiển thị thay vì bản xem trước khi in.
- Nhấp vào nút in.
- Vui lòng cấp quyền cho lời nhắc kết nối từ QZ Tray đối với các hành động bạn đã khởi tạo (Phím tắt: Alt + A).
- Bạn có thể được yêu cầu chọn "định dạng in - ánh xạ máy in".
- Ánh xạ này được sử dụng để gửi các lệnh in tới máy in phù hợp.
- Máy in cần được cài đặt trên máy tính của bạn để có thể ánh xạ nó tới một định dạng in.

- Ánh xạ này được lưu trữ cục bộ trên cùng một máy tính và sẽ cần được thiết lập trên từng máy khách.
- Bạn cũng có thể chỉnh sửa điều này bằng cách nhấp vào nút Cài đặt máy in.

2.2 Gọi các hàm In thô từ tập lệnh khách (client script)
Việc yêu cầu một lệnh in được thực hiện dựa trên một sự kiện nhất định (như gửi đi, lưu, sửa đổi, v.v.) là rất phổ biến. Bạn có thể viết một tập lệnh khách để thực hiện việc này.
Dưới đây là các hàm In thô liên quan:
- hàm:
frappe.ui.form.qz_connect
- Một trình bao bọc kết nối để thiết lập kết nối với ứng dụng QZ Tray.
- Trả về một promise (lời hứa) sẽ giải quyết khi thiết lập kết nối thành công.
- Cho phép các kết nối đang hoạt động và không hoạt động giải quyết bất kể trạng thái. Do đó, nó có thể được gọi mỗi lần trước khi gửi một lệnh.
- Ví dụ sử dụng:
frappe.ui.form.qz_connect()
.then(function () {
return qz.print(config, data);
})
.then(frappe.ui.form.qz_success)
.catch(err => {
frappe.ui.form.qz_fail(err);
});Ở đây, qz là một đối tượng toàn cục được cung cấp bởi thư viện qz-tray.js.
- hàm:
frappe.ui.form.qz_get_printer_list
- Cung cấp danh sách các máy in có sẵn cho ứng dụng QZ Tray
- Trả về một promise sẽ giải quyết thành danh sách các máy in
Ví dụ sử dụng:
frappe.ui.form.qz_get_printer_list().then(
// Required action on getting the printer list.
// Note: Printer list is a array of strings.
);- hàm:
frappe.ui.form.qz_success
- Hiển thị thông báo "Đã gửi bản in tới máy in!" cho người dùng. Có thể được gọi sau khi lệnh in thành công.
- hàm:
frappe.ui.form.qz_fail
- Hiển thị thông báo lỗi cho người dùng. Nên được gọi khi kết nối QZ Tray thất bại.
Bạn cũng có thể truy cập trực tiếp các hàm được cung cấp bởi thư viện qz-tray.js thông qua đối tượng qz. Nhấp vào đây để xem tài liệu thư viện qz-tray.js. Lưu ý: Đối tượng qz chỉ được khởi tạo sau khi gọi frappe.ui.form.qz_connect lần đầu tiên. Trong trường hợp bạn yêu cầu đối tượng qz trước đó, bạn có thể sử dụng frappe.ui.form.qz_init.
