Я хочу напечатать файл. Я написал этот код для этого. Но он не печатает мой файл. для выбора услуги:Файл не был напечатан Через устройство принтера в java
String printerName = "Canon MF4320-4350".toLowerCase();
PrintService service = null;
PrintService[] services = PrinterJob.lookupPrintServices();
// Retrieve a print service from the array
for (int index = 0; service == null && index < services.length; index++) {
if (services[index].getName().toLowerCase().indexOf(printerName) >= 0) {
service = services[index];
}
}
для печати:
byte[] bytes = null;
Path path = FileSystems.getDefault().getPath("D:\\Test.docx");
bytes = Files.readAllBytes(path);
DocFlavor docFlavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;
PrintRequestAttributeSet faset = new HashPrintRequestAttributeSet();
faset.add(new Copies(5));
faset.add(Sides.ONE_SIDED);
DocAttributeSet daset = new HashDocAttributeSet();
daset.add(OrientationRequested.LANDSCAPE);
daset.add(Sides.ONE_SIDED);
Doc myDoc = new SimpleDoc(bytes, docFlavor, daset);
//create the DocPrintJob
DocPrintJob job = service.createPrintJob();
job.print(myDoc, faset);
Спасибо, Адриан, но если я, но .txt файл здесь, он тоже не работает. – John
Если вы планируете печатать, отправив поток потока на принтер, наилучшей ссылкой являются фильтры, используемые печатью Linux для вашего принтера (https://wiki.debian.org/PrinterDriver/Canon/UFR-II). Я не думаю, что струйные принтеры Canon печатают обычный текст без перевода в UFR. –
Чем вы :), Есть ли другой способ, кроме отправки потока байтов на принтер? – John