Có cách chuẩn mực và nền tảng hợp lý để in văn bản (hoặc thậm chí PS/PDF) cho máy in được hệ thống xác định không?In bằng máy in chuẩn từ Python?
Giả sử CPython ở đây, không phải thứ gì đó thông minh như sử dụng Jython và Java printing API.
Có cách chuẩn mực và nền tảng hợp lý để in văn bản (hoặc thậm chí PS/PDF) cho máy in được hệ thống xác định không?In bằng máy in chuẩn từ Python?
Giả sử CPython ở đây, không phải thứ gì đó thông minh như sử dụng Jython và Java printing API.
Thật không may, không có cách tiêu chuẩn để in bằng cách sử dụng Python trên tất cả các nền tảng. Vì vậy, bạn sẽ cần phải viết hàm wrapper của riêng bạn để in.
Bạn cần phải detect the OS chương trình bạn đang chạy trên, sau đó:
Đối với Linux -
import subprocess
lpr = subprocess.Popen("/usr/bin/lpr", stdin=subprocess.PIPE)
lpr.stdin.write(your_data_here)
Đối với Windows: http://timgolden.me.uk/python/win32_how_do_i/print.html
Tài nguyên khác:
Print PDF document with python's win32print module?
How do I print to the OS's default printer in Python 3 (cross platform)?
Để in bằng bất kỳ máy in trên mạng bạn có thể gửi/tác vụ in PCL PJL trực tiếp đến một máy in mạng trên cổng 9100.
hãy có một cái nhìn tại liên kết dưới đây mà nên cung cấp cho một khởi đầu tốt:
http://frank.zinepal.com/printing-directly-to-a-network-printer
Ngoài ra, Nếu có một cách để gọi cmd của Windows, bạn có thể sử dụng FTP đặt để in trang của bạn trên 9100. Dưới đây liên kết nên cung cấp cho bạn thông tin chi tiết, tôi đã sử dụng phương pháp này cho máy in HP nhưng tôi tin rằng nó sẽ hoạt động với các máy in khác.
http://h20000.www2.hp.com/bizsupport/TechSupport/Document.jsp?objectID=bpj06165
này chỉ được thử nghiệm trên Windows:
Bạn có thể làm như sau:
import os
os.startfile("C:/Users/TestFile.txt", "print")
này sẽ bắt đầu tập tin, trong mở mặc định của nó, với động từ 'in ', sẽ in ra máy in mặc định của bạn. Chỉ yêu cầu mô-đun os
đi kèm với thư viện chuẩn
theo https://docs.python.org/2/library/os.html#os.startfile điều này chỉ hoạt động trên windows – Buzz
Bạn có thể thử thư viện wx. Đó là một thư viện giao diện người dùng nền tảng chéo. Tại đây bạn có thể tìm thấy hướng dẫn in: http://wiki.wxpython.org/Printing
Điều này rất hứa hẹn! Tôi không làm việc với python + in ấn nữa, nhưng nếu in ấn đáng kinh ngạc hoạt động nền tảng chéo với wxpython, tôi sẽ chấp nhận câu trả lời này. –
Loại máy in của bạn là gì? Đây là một hướng dẫn về in ấn cho máy in POS http://goo.gl/rd8lm – Switch
Giả sử in ấn Java có thể làm điều này một giải pháp "thông minh" khác là JPype (một cách để có được cpython và jvm để giao tiếp/chạy mã với nhau) –