JSF / Applet — Как вызывать функцию (автоматическое увеличение числа) при каждой печати страницы

#java #javascript #web-applications #jsf-2 #applet

#java #javascript #веб-приложения #jsf-2 #апплет

Вопрос:

Привет, ребята, я создаю веб-приложение для печати этикеток (штрих-кодов) на Java (JSF), которое требует печати через Интернет.

Во время нашего тестирования был задан определенный сценарий: если пользователь хочет напечатать 10 копий одной и той же этикетки (штрих-кода), поле на этикетке, которое вызывает серийный номер, должно увеличиваться само. Допустим, например, последнее сгенерированное число было 100, тогда каждая метка должна иметь уникальный серийный номер — 101, 102 … 110.

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

Ваша помощь будет высоко оценена, и я хотел бы заранее поблагодарить вас за ваш ответ.

Ответ №1:

Из вашего браузера: предложите кнопку печати, которая обновит (javascript) страницу перед открытием диалогового окна печати (JS: window.print). Вы также можете взглянуть на OnAfterPrint (http://www.webmasterworld.com/javascript/3038993.htm , только IE), чтобы перехватить в javascript действие печати.

Другой возможный дизайн (лучше) — обрабатывать это на сервере. Это единственный способ, если вы хотите, чтобы одновременные пользователи не использовали одни и те же серийные номера. —> предложите кнопку, которая получает PDF-файл, созданный вашим сервером, с соответствующим серийным номером. Затем PDF-файл легко печатается на чистой стороне.

Конечно, вы никогда не будете уверены, что PDF-файл действительно напечатан. Но организация того, чтобы сами принтеры сообщали напрямую серверу, кажется очень сложной в организации.