Làm cách nào để thêm máy in giả, giả, null trong CUPS?


12

Tôi đang viết một phần mềm hỗ trợ nhiều máy in. Để kiểm tra nó, tôi cần thêm nhiều máy in vào máy chủ CUPS của mình. Làm thế nào tôi có thể làm điều đó?

Tôi muốn thêm một vài máy in giả sẽ gửi công việc trực tiếp tới / dev / null. Bằng cách đó, tôi có thể xem danh sách "công việc đã hoàn thành" trong giao diện CUPS và quan sát xem phần mềm của tôi có đang sử dụng đúng máy in cho từng công việc hay không.


không đúng "lpadmin -p lp0 -E -v / dev / null -m raw"
Ashika Umanga Umagiliya

Câu trả lời:


11

Một giải pháp là cài đặt cup-pdf . Nó thêm một máy in ảo ghi tập tin PDF. Có một số hướng dẫn trên web về cách cài đặt và cấu hình nó; kể từ khi tôi sử dụng Gentoo, tôi đã đọc Gentoo-wiki , trong đó cũng đề cập đến Sabayon wiki .

Máy in ảo cup-pdf có tệp cấu hình /etc/cups/cups-pdf.confvà theo mặc định, tất cả các tệp PDF được ghi vào /var/spool/cups-pdf/${USER}.

(NB: Trên Ubuntu, nó ghi vào ~ / PDF /)

Tuy nhiên, có một vài hạn chế:

  • Vì chỉ có một tệp cấu hình, nhiều máy in PDF sẽ lưu vào cùng một thư mục.

  • Không thể in dữ liệu "thô" (ví dụ: sử dụng lpr -o raw). Ngay cả việc gửi tệp PDF dưới dạng công việc thô cũng sẽ không hoạt động. Công việc in thô sẽ tạo ra một tệp PDF trống chỉ với một trang trống.

Ngay cả với những hạn chế này, nó hoạt động hoàn hảo cho nhu cầu của tôi.


Lưu ý: nếu người dùng đang sử dụng Gnome hoặc in qua ứng dụng GTK +, thì đã có máy in giả "In thành tệp" trong hộp thoại in. Vì vậy, tại sao người dùng vẫn muốn thêm một máy in PDF ảo? Dưới đây là một vài lý do:

  • Rằng "In ra tệp" dành riêng cho GTK + và không khả dụng cho các ứng dụng không phải GTK +. (có thể KDE có một tính năng tương tự, nhưng tôi không chắc)
  • Nó có thể tạo PDF từ "ứng dụng" Flash được thiết kế để in. Ví dụ, PocketMod .
  • Thêm máy in ảo vào CUPS cho phép kiểm tra in bằng cách sử dụng tập lệnh shell hoặc phần mềm khác nói chuyện trực tiếp với CUPS. Điều này đặc biệt hữu ích cho các nhà phát triển trong khi thử nghiệm các ứng dụng của họ.
  • Có thể "chia sẻ" máy in ảo này với mạng cục bộ. Không chính xác hữu ích, nhưng có thể.
  • Có thể đính kèm một lệnh xử lý hậu kỳ để được thực thi ngay sau khi tệp PDF được lưu.

9

Diễn đàn Cup có câu trả lời đầy đủ / chính xác hơn cho câu hỏi này.

Câu trả lời là URI thiết bị nên được đặt thành tệp: / dev / null

Vì vậy, trong thiết lập Ubuntu của tôi:

  • URI thiết bị: tệp: / dev / null
  • Kiểu và kiểu: Máy in thô cục bộ

Mà làm việc cho tôi hoàn hảo.

Tôi đã tìm kiếm diễn đàn Cup một lần nữa và tìm thấy điều này:

Thiết lập máy in dòng lệnh Null trong Cup Forum

Trong cupsd.conf của bạn:

FileDevice yes

Cài đặt máy in

lpadmin -p nowhere -E -v file:/dev/null

Máy in thử

who |lp -d nowhere

Bây giờ tôi chỉ nhìn vào bản in của mình: chi tiết đẹp, màu sắc rực rỡ, nó đơn giản nhảy ra khỏi trang của tôi. ... này waamineute ....
Andrew Russell

Cảm ơn bạn. Tôi cần một máy in giả trong Máy ảo của mình để chụp màn hình một số hướng dẫn. :)
njallam

7

Bạn có thể tạo một máy in xuất ra /dev/nullvới lpadmin:

$ sudo lpadmin -p myprinter -E -v file:///dev/null

Điều này sẽ được ghi vào /etc/cups/printers.conf, nhưng bạn cũng có thể xem các máy in với lpstat:

$ sudo lpstat -s
myprinter accepting requests since Thu 22 Jan 2015 11:04:46 AM GMT
system default destination: myprinter
device for myprinter: ///dev/null

Lưu ý rằng bạn có thể cần bật FileDevice trong /etc/cups/cupsd.conf trên các bản phân phối Linux cũ .

Để đặt máy in mới của bạn thành mặc định, hãy sử dụng lpoptions:

$ sudo lpoptions -d myprinter

Làm thế nào để loại bỏ nó?
Richard

@Richard Sử dụng lpadmin -x myprinterhoặc giao diện web.
Torkel Bjørnson-Langen

2

Một trong những giải pháp tốt nhất là sử dụng ippserver. Nó đi kèm CUPSv2.2.2và cao hơn. Ngoài ra, bạn có thể nhận dự án từ đây: Triển khai mẫu của IPP .

Theo mô tả trên trang hướng dẫn :

ippserver là máy chủ Giao thức In Internet đơn giản (IPP) tuân thủ các thông số kỹ thuật của Cơ sở hạ tầng chia sẻ cơ sở hạ tầng (INFRA) của IPP ở mọi nơi. Nó có thể được sử dụng như một máy chủ in độc lập và / hoặc máy chủ cơ sở hạ tầng rất cơ bản giữa các máy khách IPP tiêu chuẩn và proxy của IPP tuân thủ thông số kỹ thuật INFRA.

Để sử dụng nó, tất cả những gì bạn cần làm là chạy ippserver "My cool printer"và nó sẽ tạo ra một máy in ảo với tên My cool printercho bạn. Nó chạy như một máy chủ web và lắng nghe trên các cổng cụ thể.

Trong trường hợp bạn cần nhiều máy in, bạn có thể chạy máy chủ trên nhiều cổng bằng cách sử dụng ippserver "My other cool printer" -p 8888.

Bạn thậm chí có thể cung cấp các thuộc tính máy in bằng cách sử dụng tệp thuộc tính. Chẳng hạn, máy in của bạn hỗ trợ theo bản in chất lượng cao mặc định, bạn có thể thêm thuộc tính sau vào tệp thuộc tính:

ATTR enum print-quality-default high

và chạy máy chủ bằng cách sử dụng:

ippserver "My high quality cool printer" -a attributes-file.txt

Người giới thiệu:

  1. Mẫu thử nghiệm PWG
  2. Trang người dùng CUPS ipptoolfile

1

Lấy từ http://inai.de/linux/adm_virtualprinter :

Máy in ảo trong CUPS

Để tạo một máy in trong CUPS gửi dữ liệu đến đâu (như /dev/null), có nhiều cách. Trang này sử dụng socket:// phương pháp.

Thiết lập xinetd trước

Những gì chúng ta cần là dịch vụ TCP Discard trên cổng 9. Xinetd đã tích hợp sẵn, vì vậy chúng ta chỉ có thể sử dụng dịch vụ đó. Hãy chắc chắn rằng định nghĩa sau đây có sẵn trong (các) tệp cấu hình của xinetd /etc/xinetd.d/discard. Nó sẽ chứa một dịch vụ như sau:

    loại bỏ dịch vụ
        loại = NỘI BỘ
        id = loại bỏ luồng
        socket_type = luồng
        giao thức = tcp
        người dùng = root
        chờ đợi = không
        vô hiệu hóa = không
        CỜ = IPv6 IPv4 
Chạy rcxinetd reloadđể đọc lại các tệp cấu hình và kích hoạt discarddịch vụ mới . Hoặc sử dụng rcxinetd startnếu xinetd chưa hoạt động.

Máy in CUPS

Bây giờ hãy vào frontend web CUPS và thêm một máy in mới. Là đích đến, hãy sử dụng socket://localhost:9/, khi máy in chọn thứ gì đó có vẻ đặc trưng, ​​ví dụ: "HP 2500C Foomatic / pcl3". Thats tất cả để có nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.