(빅솔론 SRP350 플러스)를 시도하고 자동 처음 열 프린터를 사용 영수증 (빅솔론의 SRP 350 플러스)이상한 행동 인쇄 열 프린터 JAVA 응용 프로그램에서 자동 절단 기능을 구현하기 위해 나는 자바 응용 프로그램을
을 절감하면서 영수증을 자동 절단하는 데 문제가 있었지만 많은 시도와 Google 검색 후 영수증 자동 절단을 관리합니다. 그러나 문제는 테스트 시스템에 전쟁 애플리케이션을 배포 할 때 문제가되지 않지만 결국에는 종이를 자르지 않고 있다는 것입니다. 나는 심지어 내 개발 기계의 바람둥이에 전쟁 파일을 배포하고 잘 자르고있다.
개발 컴퓨터와 테스트 컴퓨터 모두 Windows 7 - 궁극적 인, 동일한 apache-tomcat-6.0.18 및 JDK6/JRE6을 사용하고 있습니다.
처음에는 테스트 기계에 jre6이 설치되었고 자동 절단이 실패했습니다. 내 개발 컴퓨터에서 jdk6을 사용하여 성공적으로 설치하지 못했습니다.
두 기계는 서로 다른 하드웨어 구성의 다른 브랜드입니다. 누구든지 나를 도와 줄 수 있습니까? 이것은 이전에 설치된 JRE6과 관련이 있으며 Windows 레지스트리에서 제대로 제거되지 않았습니까?
나는 mysql 5.5와 함께 grails 1.3.7을 사용하고있다.
내 코드는 다음과 같습니다 : 사람이 자동 절단 기능을 구현할 수있는 더 좋은 방법 좀 도와 수 있다면
public void printBill(String printData) throws Exception {
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
pras.add(new Copies(5));
pras.add(new PrinterResolution(180,180,PrinterResolution.DPI));
PrintService pss[] = PrintServiceLookup.lookupPrintServices(null,pras);
if (pss.length == 0) {
throw new RuntimeException("No printer services available.");
}
if(printData == null) {
throw new Exception("nothing to print");
}
PrintService ps = pss[0];
DocPrintJob job = ps.createPrintJob();
DocAttributeSet das = new HashDocAttributeSet();
das.add(new PrinterResolution(180,180,PrinterResolution.DPI));
byte[] desc = printData.getBytes();
Doc doc = new SimpleDoc(desc, DocFlavor.BYTE_ARRAY.AUTOSENSE, das);
try {
job.print(doc, pras);
cutPaper();
} catch (Exception e) {
e.printStackTrace();
}
}
/*
* TODO improvision to auto cut bill, need to find a proper way to cut
*/
private void cutPaper() throws Exception{
TempPageCutter pageCutter = new RestaurantPrinter().new TempPageCutter();
pageCutter.cutReceipt();
}
private class TempPageCutter implements Printable {
@Override
public int print(Graphics graphics, PageFormat pageFormat, int pageIndex)
throws PrinterException {
if(pageIndex > 0)
return NO_SUCH_PAGE;
System.out.println("Cutting");
graphics.drawString("", 0, 0);
return PAGE_EXISTS;
}
public void cutReceipt() throws PrinterException {
System.out.println("cutReceipt");
PrintService[] printService = PrinterJob.lookupPrintServices();
if(printService == null || printService.length < 1) {
return;
}
PrinterJob job = PrinterJob.getPrinterJob();
job.setPrintable(this);
job.print();
}
}
그것이 큰 도움이 될 것입니다.
나는 전에 Bixolon 프린터로 Java로 작업 해 본 적이 없습니다. 나에게 머리를 쏠 수 있습니까? JAVA를 사용하여 인쇄하는 간단한 예입니다. – yuva