안녕하세요,원시 프린터 용지함 ID를 얻는 방법
특정 프린터의 프린터 용지함 ID를 찾으려고합니다. 필자는 PrintService, Media 및 MediaTray를 사용하여 Java에서 많은 기사를 검색하고 발견했습니다. 그러나 이것은 나의 요구 사항에 대한 해결책을 제공하지 못합니다. 아래 코드를 실행하면 다음과 같은 출력이 표시됩니다.
String printName = "AL-M2010-3D8E02";
AttributeSet aset = new HashAttributeSet();
aset.add(new PrinterName(printName, null));
PrintService[] services = PrintServiceLookup.lookupPrintServices(null, aset);
for (int i = 0; i < services.length; i++) {
PrintService service = services[i];
System.out.println(service);
DocFlavor flavor = DocFlavor.SERVICE_FORMATTED.PAGEABLE;
Object o = service.getSupportedAttributeValues(Media.class, flavor, null);
if (o != null && o.getClass().isArray()) {
for (Media media : (Media[]) o) {
if (media instanceof MediaTray) {
System.out.println(media + " ID: " + media.getValue() + "\t" + media.getClass().getName());
}
}
}
}
의 Win32 프린터 : AL-M2010-3D8E02
폼 소스 ID : 5 sun.print.Win32MediaTray
ID MP 트레이 : 6 sun.print.Win32MediaTray
하단 카세트 1 ID : 7 sun.print.Win32MediaTray
하위 카세트 2 ID : 8 sun.print.Win32MediaTray
하단 카세트 3 ID : 9 sun.print.Win32MediaTray
하단 카세트 4 ID : 10 sun.print.Win32MediaTray
나는 다음과 같은 outpt을 얻을 것 다음 .NET 코드를 실행하면
.PrintDocument printDoc = new PrintDocument();
printDoc.PrinterSettings.PrinterName = "AL-M2010-3D8E02";
for (int i = 0; i < printDoc.PrinterSettings.PaperSources.Count; i++)
{
trayDetails.AppendText(printDoc.PrinterSettings.PaperSources[i].SourceName + " " + printDoc.PrinterSettings.PaperSources[i].RawKind.ToString());
trayDetails.AppendText(Environment.NewLine);
}
자동 15
MP 트레이 261
하단 카세트 1 260
하단 카세트 2 259
하단 카세트 (3) 267
하단 카세트 4 257
선택위의 내용을 달성하고 싶습니다. 260, 259, 258과 같은 원시 프린터 ID를 얻으려고합니다. Java를 사용하여 7,8,9,10을 얻을 수 있습니다.이 방법이 가능합니까? 사전에
감사합니다,
감사합니다,
CD를 남자 불과 3 개 라인을 추가하려면 위의 코드에