Цитата:
const pdfDocGenerator = pdfMake.createPdf(docDefinition); pdfDocGenerator.getBase64((data) => { //тут помещайте data в скрытое поле формы, и отправляйте на сервер //выполнив этот метод, если выбрана отправка }); Как вы читаете доки то? А можно и BLOB отправить как файл, и такой метод есть. |
Цитата:
Я имею ввиду помещаю я дату в поле. Например так: <input type="hidden" id="pdfdoc" name="pdfdoc" /> const pdfDocGenerator = pdfMake.createPdf(docDefinition); pdfDocGenerator.getBase64((data) => { $('#pdfdoc').val(data); }); И потом это поле передаю на сервер. Потом на сервере нужно будет что-то делать, чтобы из этого собрать файл? Или это будет просто текстовая информация? |
Цитата:
|
Чего вы собираетесь делать с файлом этим на сервере, да и вообще нафига он нужен, но почтой файл передается как раз в base64 (Content-Transfer-Encoding:base64), то есть переданный таким образом файл и декодировать не нужно будет, если он только для отправления почты. Его нужно будет только разбить на строки, в РНР это функция chunk_split.
|
Думаю сейчас разберусь. Другой вопрос вылез.
Сейчас написано так. function changeFunc() { //Тут идет функция, в которой происходят все расчеты. // Поскольку при формировании pdf используются данные расчетов, то формирование переменной для дальнейшего формирования pdf происходит в этой же функции. var docInfo = { // Тут контент и настройки файла }; }; $('#printfile').click(function() { pdfMake.createPdf(docInfo).print('name.pdf'); }); Дальше есть кнопка "Распечатать". По идее при клике на кнопку нужно сделать pdfMake.createPdf(docInfo).print('name.pdf'); Но переменная docInfo получается не определена... МОжно конечно сделать еще одну функцию 2 в одном (расчеты + печать файла) и повесить ее на клик по кнопке "Распечатать". Но по сути должна быть еще одна функция, которая должна висеть на событии submit, формировать файл pdf и передавать в инпут содержимое файла. Это получается третий дубль одной и тоже функции с расчетами. Что-то не правильно... Как можно задать pdfMake.createPdf(docInfo).print('name.pdf');Вне функции, в которой формируется var docInfo? |
Не знаю, у меня эта приблуда только в закладках браузера, реально же не использовал ни разу, ибо то, что действительно нужно когда-то готовить как PDF (презентации и прочие доки), все это готовится на сервере. Мне надо потратить немного времени, чтобы "пощупать" эту приблуду.
Ваш калькулятор, судя по данным, прост как валенок :) , неужели нельзя было результат расчета организовать как таблицу, которую распечатать то ведь не так и сложно, более того, можно даже в отдельном окне, запросив сервер, который вернет все в каком-то "шикарном шаблоне" для печати, или использовать meda print? Неужели рационально отсылать почтой какой-то файл, вместо того, чтобы отправить обычное почтовое html сообщение? Я ничего не имею против, охота пуще неволи, но когда вместо пользы геморрой, я этого не понимаю. ;) |
Цитата:
Мне просто интересно, можно ли получить данные переменной, которая задана внутри функции, извне этой самой функции. Вот в чем вопрос) Простым способом она получается НЕОПРЕДЕЛЕНА |
Разобрался...
Оказывается это делается очень просто)) Я про передачу переменной из одной функции в другую... function changeFunc(){ var docInfo = хххххххх; return docInfo; } $('#printfile').click(function() { var docInfo = changeFunc(); pdfMake.createPdf(docInfo).print('name.pdf'); }); Теперь расчеты в одном экземпляре, все остальное отдельными функциями. |
Часовой пояс GMT +3, время: 13:16. |