lp filename
komutunu kullanırsam iyi çalıştığım bir dosyam var.javax.print kullanarak bardaklar üzerine yazdırma
Dosya, makbuz darbesi yazıcısı için bir ESC/P dosyasıdır. Bu linux yerli CUPS sürücüleri ve tüm bu çalışır.
javax.print
API'sini kullanmaya çalışıyorum, böylece baskı üzerinde daha iyi bir kontrole sahip olabilirim ve Linux'u platform olarak kabul etmekteyim.
Ben adam ve veri türü (InputStream
, byte[]
, Reader
vs.) her türlü bildiği her DocFlavor kombinasyonu denedim
Sadece hep birlikte print()
komutunu yok sayar ya da sadece boş bir levha dışarı çevirir ya kağıt. lp filename
'u çalıştırmak mükemmel bir şekilde yazdırıyor,'un işlevsel eşdeğerini yapmak için javax.print
'u nasıl alabilirim?
javax.print
'u kullanarak ayarlamamış değilim Diğer "şeyleri" kullanabilirim ve cups4J'yi araştırmaya başlayabilirim ancak bana sadece Linux için izin verecek gibi görünüyor. çözüm.
Dosyada lp
sistem komutunu verebilirdim, ancak daha iyi taneli denetime ihtiyacım var. Bunlar yazdırdığımız makbuz değil, biletler ve biletler $ 5,00 ile binlerce dolar arasında değişiyor. Şu anda bir yazdırma sorununu tespit edersek, işlemi iptal ederiz ve yazdırılan herhangi bir şey geçersizse, müşteri fotokopisini kaybederse yeni bir kopya yazdırmak için yeniden baskıları hafifçe ve çoğu zaman almazız. Oh, bunu yapmamızın nedeni, POS sistemini Windows'dan Linux'a ve yazıcıları seri portlar üzerinden doğrudan erişime sahip USB üzerinden yönetilen CUPS'e dönüştürmektir. İşte çalışmayan kodum. Herhangi bir yardım takdir edilir.
try {
// Find the default service
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
PrintService service = PrintServiceLookup.lookupDefaultPrintService();
// Create the print job
DocPrintJob job = service.createPrintJob();
InputStream in = new FileInputStream("/home/bart/real.escp");
Doc docNew = new SimpleDoc(in,flavor,null);
// Monitor print job events; for the implementation of PrintJobWatcher,
// see Determining When a Print Job Has Finished
PrintJobWatcher pjDone = new PrintJobWatcher(job);
// Print it
job.print(docNew, null);
// Wait for the print job to be done
pjDone.waitForDone();
// It is now safe to close the input stream
in.close();
} catch (PrintException e) {
} catch (IOException e) {
}
Baskı gönderin. Yazdırmamın bir kısmını yapmak için lpr komutuyla komut satırına bomba attım. Bir seçenek, dosyanızı Java gibi anlayacağınız bir formata dönüştürüp dönüştüremeyeceğinizi ve daha sonra javax.print dosyasını kullanıp kullanamayacağınızı görmek olabilir. – Mitch
Bu, linux esc/p dönüştürücüsünün problemi olabilir, ancak lp komutu iyi yazdırıldığında neden rahatsız olursa, ESC/P'den (doğrudan yazıcıya beslenebilir) sorun çıkması gibi görünüyor -> PDF (yapmak Java Mutlu) -> ESC/P (sürücü aracılığıyla). ESC/P dosyalarını üretiyoruz. Neyse Cups4J ile harika çalışıyor, uygulamak için yaklaşık 15 dakika sürdü. Sanırım cups4J kullanacak ve diğer OS/yazdırma sistemi sorunları ile açılırlar. –