Как вывести на печать документы с сервера
Есть ли возможность с помощью PHP или JS вывести на печать файлы .xlsx, хранящиеся на сервере?
Ответы (1 шт):
Если вы хотите печатать из браузера документы, которые хранятся на сервере в формате .xlsx, то в первую очередь вам требуется их как-то отрендерить браузером. То есть:
- Через PHP получить в каком-либо формате данные из файла. Для этого есть если библиотеки вроде PhpSpreadsheet.
- Через HTML+CSS отрисовать таблицу на странице.
- Учесть стили для печати.
Далее готовую таблицу можно принудительно отправить на печать, не требуя от пользователя нажимать Ctrl+P. Можно даже спрятать подгрузку страницы и сделать так, чтобы все происходило по нажатию на кнопку. Я пользуюсь такой функцией:
function (url) {
var oHiddFrame = document.createElement("iframe");
oHiddFrame.onload = function () {
this.contentWindow.print();
};
oHiddFrame.style.visibility = "hidden";
oHiddFrame.style.position = "fixed";
oHiddFrame.style.right = "-10000";
oHiddFrame.style.bottom = "-10000";
oHiddFrame.src = url;
document.body.appendChild(oHiddFrame);
}
Тут url — это путь, по которому отображается сгенерированная html-таблица.
В идеальном случае, хотелось бы иметь возможность печатать так же, как если этот файл печатался из Excel. Но тогда вам нужно каким-то образом запускать этот Excel, в котором будет все те же возможности, что и в обычной версии, но таких способов я не знаю.