CUPS'a sahte, sahte, boş bir yazıcı nasıl eklenir?


12

Birden fazla yazıcıyı destekleyen bir yazılım parçası yazıyorum. Test etmek için CUPS sunucuma birden fazla yazıcı eklemem gerekiyor. Bunu nasıl yapabilirim?

İşleri doğrudan / dev / null'a gönderecek birkaç sahte yazıcı eklemek istiyorum. Bu şekilde, CUPS arayüzündeki "tamamlanan işler" listesini izleyebilir ve yazılımımın her iş için doğru yazıcıyı kullanıp kullanmadığını gözlemleyebilirim.


bu doğru değil "lpadmin -p lp0 -E -v / dev / null -m ham"
Ashika Umanga Umagiliya

1
Ayrıca yapay yazıcı oluşturma konusuna bakın .
Wilfred Hughes

Yanıtlar:


11

Bir çözüm, cups-pdf yüklemektir . PDF dosyaları yazan sanal bir yazıcı ekler. Web üzerinde nasıl kurulacağı ve yapılandırılacağı hakkında birkaç öğretici vardır; Gentoo kullandığımdan beri , Sabayon wiki'den de bahseden Gentoo-wiki'yi okudum .

cups-pdf sanal yazıcısında bir yapılandırma dosyası vardır /etc/cups/cups-pdf.confve varsayılan olarak tüm PDF dosyaları yazılır /var/spool/cups-pdf/${USER}.

(Not: Ubuntu'da ~ / PDF / yazıyor)

Bununla birlikte, birkaç sınırlama vardır:

  • Yalnızca bir yapılandırma dosyası olduğundan, birden çok PDF yazıcısı aynı dizine kaydedilir.

  • "Ham" veri yazdırmak imkansızdır (örneğin, lpr -o raw). Bir PDF dosyasını ham iş olarak göndermek bile çalışmaz. Ham yazdırma işleri, yalnızca boş bir sayfa içeren boş bir PDF dosyası oluşturur.

Bu sınırlamalarla bile, ihtiyaçlarım için mükemmel çalışıyor.


Dipnot: Kullanıcı Gnome kullanıyorsa veya bir GTK + uygulaması üzerinden yazdırıyorsa, yazdırma iletişim kutusunda zaten bir "Dosyaya Yazdır" sahte yazıcısı vardır. Peki, neden kullanıcı hala sanal bir PDF yazıcı eklemek istiyor? İşte birkaç neden:

  • "Dosyaya Yazdır", GTK + 'ya özgüdür ve GTK + olmayan uygulamalar için kullanılamaz. (belki KDE'nin benzer bir özelliği vardır, ancak emin değilim)
  • Yazdırma için tasarlanmış Flash "uygulamalarından" PDF oluşturmayı mümkün kılar. Örneğin, PocketMod .
  • CUPS'a sanal bir yazıcı eklemek, kabuk komut dosyaları veya doğrudan CUPS ile konuşan başka bir yazılım kullanarak yazdırmayı test etmeyi mümkün kılar. Bu, geliştiricileri uygulamalarını test ederken özellikle kullanışlıdır.
  • Bu sanal yazıcıyı yerel ağ ile "paylaşmak" mümkündür. Tam olarak kullanışlı değil, ama mümkün.
  • PDF dosyası kaydedildikten hemen sonra yürütülecek bir işlem sonrası komutu eklemek mümkündür.

10

Kupa Forumu'nun bu soruya daha eksiksiz / doğru bir cevabı var.

Yanıt, aygıt URI'sının şu dosyaya ayarlanması gerektiğidir: / dev / null

Bu yüzden Ubuntu kurulumumda:

  • Cihaz URI'si: dosya: / dev / null
  • Marka ve Model: Yerel Ham Yazıcı

Hangi benim için mükemmel çalışıyor.

Bardaklar forumunu tekrar aradım ve buldum:

Bardak Forumunda Komut Satırı Boş Yazıcı Kurulumu

Cupsd.conf dosyasında:

FileDevice yes

Yazıcı Kurulumu

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

Test Yazıcısı

who |lp -d nowhere

Şu anda çıktıma bakıyorum: ince detaylar, canlı renkler düz sayfadan atlar. ... hey waitaminute ....
Andrew Russell

Teşekkür ederim. Bazı talimatları görüntülemek için Sanal Makinemde sahte bir yazıcıya ihtiyacım vardı. :)
njallam

Teşekkürler. Bu da işe yaradı wine.
Tinti

7

Sen çıkışları olduğu bir yazıcı oluşturabilir /dev/nullile lpadmin:

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

Bu yazılacak /etc/cups/printers.conf, ancak şu yazıcıları da görüntüleyebilirsiniz 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

Eski Linux dağıtımlarında /etc/cups/cupsd.conf dosyasında FileDevice'i etkinleştirmeniz gerekebileceğini unutmayın .

Yeni yazıcınızı varsayılan yapmak için şunu kullanın lpoptions:

$ sudo lpoptions -d myprinter

Nasıl kaldırılır?
Richard

@Richard lpadmin -x myprinterveya web arayüzünü kullanın .
Torkel Bjørnson-Langen

2

En iyi çözümlerden biri kullanmaktır ippserver. İle birlikte CUPSv2.2.2ve daha yüksek gelir . Alternatif olarak projeyi buradan alabilirsiniz: IPP örnek uygulamaları .

Kılavuz sayfasındaki açıklamaya göre :

ippserver, IPP Everywhere ve IPP Paylaşılan Altyapı Uzantıları (INFRA) spesifikasyonlarına uyan basit bir İnternet Yazdırma Protokolü (IPP) sunucusudur. Standart IPP istemcileri ve INFRA spesifikasyonuna uygun IPP proxy'leri arasında bağımsız bir baskı sunucusu ve / veya çok temel bir altyapı sunucusu olarak kullanılabilir.

Kullanmak için yapmanız gereken tek şey çalıştırmaktır ippserver "My cool printer"ve My cool printersizin için adıyla sanal bir yazıcı oluşturur . Bir web sunucusu gibi çalışır ve belirli bağlantı noktalarını dinler.

Birden fazla yazıcıya ihtiyacınız varsa, sunucuyu kullanarak birden çok bağlantı noktasında çalıştırabilirsiniz ippserver "My other cool printer" -p 8888.

Bir öznitelikler dosyası kullanarak yazıcı öznitelikleri bile sağlayabilirsiniz. Örneğin, yazıcınız varsayılan olarak yüksek kaliteli baskıları destekler, özellikler dosyasına aşağıdaki özelliği ekleyebilirsiniz:

ATTR enum print-quality-default high

ve sunucuyu aşağıdakileri kullanarak çalıştırın:

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

Referanslar:

  1. PWG IPP Örneği
  2. CUPS ipptoolfile man sayfası

1

Http://inai.de/linux/adm_virtualprinter adresinden alınmıştır :

CUPS'ta sanal yazıcı

CUPS'ta verileri hiçbir yere gönderemeyen (gibi /dev/null) bir yazıcı oluşturmak için birçok yol vardır. Bu sayfa socket:// yöntemi kullanır .

Önce xinetd'yi kur

İhtiyacımız olan şey, bağlantı noktası 9'daki TCP Atma hizmetidir. Xinetd yerleşik olarak bulunur, bu yüzden bunu kullanabiliriz. Xinetd'nin yapılandırma dosyalarında genellikle aşağıdaki tanımın bulunduğundan emin olun /etc/xinetd.d/discard. Aşağıdaki gibi bir hizmet içermelidir:

    servis atma
        type = DAHİLİ
        id = atma akışı
        socket_type = akış
        protokol = tcp
        kullanıcı = kök
        bekleyin = hayır
        devre dışı = hayır
        BAYRAK = IPv6 IPv4 
Run rcxinetd reloadyapılandırma dosyalarını yeniden okumasını ve yeni aktive discardhizmeti. Veya rcxinetd startxinetd zaten aktif değilse kullanın .

CUPS yazıcı

Şimdi CUPS web ön ucuna gidin ve yeni bir yazıcı ekleyin. Hedef olarak, socket://localhost:9/yazıcı olarak özellikli görünen bir şey seçin, örneğin "HP 2500C Foomatic / pcl3". Hepsi bu kadar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.