Существует множество кроссбраузерных компонентов для печати, но они не поддерживают печать PDF-файлов без оплаты лицензии Jatools. Поэтому мы решили сделать это самостоятельно. В любом случае это внутреннее использование, и можно потребовать установки JRE на каждом компьютере. Мы не хотим включать JRE в исполняемый пакет, так как это увеличит его размер. После тестирования мы убедились, что этот подход работает, и теперь готовы поделиться им с нужными людьми.
Мы используем Java для имитации HTTP-сервера, который по умолчанию слушает порт 8281. Затем мы вызываем локальный принтер из Java. Веб-страница отправляет информацию и параметры для печати через междоменный запрос AJAX.
// Часть кода JS поддерживает пакетную печать нескольких файлов
var srcFiles = [];
var printFileDTO = {};
printFileDTO["fileUrl"] = realPath; // URL-адрес файла PDF, который нужно распечатать
printFileDTO["fileName"] = fileName; // Имя файла PDF (необязательно)
printFileDTO["landscape"] = true; // Требуется ли горизонтальная печать (необязательно)
srcFiles.push(printFileDTO);
$.post("http://127.0.0.1:8281/print", JSON.stringify(srcFiles), function(data) {
console.log(data)
}, 'json')
Задачи печати, инициированные браузером, сохраняются в следующем списке интерфейсов, что упрощает повторную печать на месте:
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )