Windows 7에서 Java 8을 사용하여 텍스트 파일을 인쇄 할 수 없음


Answers

다른 사람이 유사한 문제 (Windows 7에서는 공백으로 인쇄하고 Windows 10에서는 필자의 경우)에서 DocFlavor가 올바르게 설정되면 (즉 선택한 인쇄 서비스에서 지원하는 경우) ...

JRE를 32 비트 8u101에서 64 비트 8u121로 업데이트하여 문제점을 해결할 수있었습니다.

Question

보고서를 만들어 텍스트 파일로 내 보낸 후 매트릭스 프린터로 인쇄했지만 작업 결과는 빈 페이지입니다. 나는 우분투에서 똑같이했는데 제대로 인쇄되고있다. Java 버그입니까?

다음은 문제를 보여주기 위해 사용한 예제 코드입니다.

public class PrintError extends Application {

    public static void main(String args[]) {
        launch(args);
    }

    public void start(Stage stage) throws PrintException {
        PrinterJob printerJob = PrinterJob.createPrinterJob();
        printerJob.showPrintDialog(stage);
        PrintRequestAttributeSet printRequestAttributeSet = new HashPrintRequestAttributeSet();
        printRequestAttributeSet.add(new Copies(printerJob.getJobSettings().getCopies()));
        printRequestAttributeSet.add(new JobName("test", Locale.getDefault()));
        DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
        Doc mydoc = new SimpleDoc(ClassLoader.class.getResourceAsStream("/should-be-printed.txt"), flavor, null);
        DocPrintJob job = getPrintService(printerJob.getPrinter().getName()).createPrintJob();
        job.print(mydoc, printRequestAttributeSet);
    }

    private PrintService getPrintService(String name) {
        for (PrintService printService : java.awt.print.PrinterJob.lookupPrintServices()) {
            if (name.equalsIgnoreCase(printService.getName())) {
                return printService;
            }
        }
        return null;
    }
}

이 예제는 JavaFx 8에서 작성되었으며 Windows 7의 Java 빌드 1.8.0-b132에서 실행 중입니다. 또한 github 에서 간단한 프로젝트를 만들었습니다