java PrinterDialog, похоже, не работает в Windows при работе на Mac - PullRequest
0 голосов
/ 18 марта 2019

Я пишу небольшое Java-приложение для управления процессом заказа для друга.

Я использую конструкцию PrinterDialog для вызова системных принтеров, и она, кажется, довольно хорошо работает на моем Mac в процессе разработки.Однако, когда я пытаюсь использовать тот же код на компьютере с Windows, код не открывает диалоговое окно системного принтера.Нет явного «сбоя кода», просто ничего не происходит.Я попытался скопировать файл Jar в Windows, а также перекомпилировать проект на NetBeans в Windows, и ни один из них, похоже, не имеет никакого значения.Был поток, похожий на этот год или два назад, но писатель, казалось, подразумевал, что просто перестройка проекта на компьютере с Windows решила проблему, когда, по-моему, это не имеет значения.

Любые комментарии или указатели, чтобы заставить приложение работать на Windows, будут с благодарностью приняты.

Код, о котором идет речь: -

    private void actionPrint(ActionEvent event) {
    try {
        Stage printStage = new Stage();
        FXMLLoader ploader = new FXMLLoader(getClass().getResource("OrderDocument.fxml"));
        Node orderNode = (Node) ploader.load();
        Group printerNode = new Group();
        printerNode.getChildren().add(orderNode);

        Scene printScene = new Scene(printerNode, 620, 875);
        printStage.setScene(printScene);

        Printer printer = Printer.getDefaultPrinter();
        PageLayout pageLayout = printer.createPageLayout(Paper.A4, PageOrientation.PORTRAIT, Printer.MarginType.HARDWARE_MINIMUM);
        PrinterJob job = PrinterJob.createPrinterJob();
        job.showPrintDialog(printStage);
        if (job != null) {
            boolean success = job.printPage(pageLayout,printerNode);
            if (success) {
                job.endJob();   
            }
        }
    } catch (IOException ex) {
        Logger.getLogger(OrderCreateController.class.getName()).log(Level.SEVERE, null, ex);
    }


}

1 Ответ

0 голосов
/ 21 марта 2019

Строка, вызывающая "showPrintDialog", имеет в качестве своего владельца этап, на котором я построил документ заказа.

Однако, перечитывая использование «showPrintDialog», я теперь думаю, что это должно относиться к моей основной стадии, и когда я произвел это изменение, код работал как на Windows, так и на Mac.

Я немного озадачен, почему вышеприведенный код работал на Mac в первую очередь, и это скорее ослепило меня, чтобы найти его в качестве решения для Windows, поэтому, если у кого-то возникнут какие-то мысли по этому поводу, я оставлю это открытым для несколько дней.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...