25.04.2018, 11:47
|
Профессор
|
|
Регистрация: 25.09.2017
Сообщений: 186
|
|
Отправка сформированного на JS PDF-файла на почту клиенту.
Всем привет.
Есть страница, на которой размещен калькулятор.
Я формирую при помощи pdfmake
https://github.com/bpampuch/pdfmake
pdf файл, который можно скачать или распечатать.
При этом в форме есть галочка, отправить расчеты мне на почту.
Соответсвенно если она отмечена, то этот файл должен уходить на почту клиенту.
В мануале есть открыть, печатать, скачать...
pdfMake.createPdf(docInfo).download('name.pdf');
pdfMake.createPdf(docInfo).open('name.pdf');
pdfMake.createPdf(docInfo).print('name.pdf');
Как этот файл во вложение засунуть?
Последний раз редактировалось the_little, 25.04.2018 в 16:47.
|
|
25.04.2018, 12:20
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от the_little
|
Как этот файл во вложение засунуть?
|
При этом в форме есть галочка, отправить расчеты мне на почту ?
|
|
25.04.2018, 15:19
|
Профессор
|
|
Регистрация: 25.09.2017
Сообщений: 186
|
|
Сообщение от laimas
|
При этом в форме есть галочка, отправить расчеты мне на почту ?
|
Да, в форме есть галочка, отправить мне на почту.
Но файл в любом случае куда-то отправляется.
Если есть галочка, то и клиенту и администратору.
Если галочки нет, то только администратору.
Я не понимаю как этот файл "выцепить".
Форму в которую подгружается файл, и который нужно отправить по почте я понимаю. Делал.
А как этот сформированный где-то файл запихнуть в письмо я не понимаю...
|
|
25.04.2018, 15:29
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от the_little
|
Я не понимаю как этот файл "выцепить".
|
Читать о методах используемого, если есть метод возвращающий данные этого файла, то не проблема его отправить на сервер.
Как примечание: чем большие возможностей предоставляется, тем больше приключений на свою задницу ищет разработчик Почему именно PDF, это калькулятор с плюшками в виде картинок, дизайн которого определяется исключительно пользователем? А проще, обычной html-таблицей результат расчета представить невозможно?
PDF, это же не брелок, который можно прицепить к связке ключей и носить с собой.
|
|
25.04.2018, 16:19
|
Профессор
|
|
Регистрация: 25.09.2017
Сообщений: 186
|
|
Сообщение от laimas
|
Читать о методах используемого, если есть метод возвращающий данные этого файла, то не проблема его отправить на сервер.
Как примечание: чем большие возможностей предоставляется, тем больше приключений на свою задницу ищет разработчик Почему именно PDF, это калькулятор с плюшками в виде картинок, дизайн которого определяется исключительно пользователем? А проще, обычной html-таблицей результат расчета представить невозможно?
PDF, это же не брелок, который можно прицепить к связке ключей и носить с собой.
|
Такое задание... При этом в PDF выводится просто текстовая часть...
|
|
25.04.2018, 16:20
|
Профессор
|
|
Регистрация: 25.09.2017
Сообщений: 186
|
|
Сообщение от laimas
|
Читать о методах используемого
|
Имеется ввиду читать в документации pdfmaker?
Нет там такого... Посмотрел, там много всего по выводу контента и настройкам самого файла. С этим всем я разобрался.
А про то что этот файл можно отправить - ни слова. И в интернете я не нашел как его отправить...
Последний раз редактировалось the_little, 25.04.2018 в 16:36.
|
|
25.04.2018, 16:42
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от the_little
|
Имеется ввиду читать в документации pdfmaker?
Нет там такого... Посмотрел, там много всего по выводу контента и настройкам самого файла.
|
Тогда нужно давать ссылку на то, что используете. Если говорить о pdfmaker, то единственное, что мне известно, это библиотека Эдоба - https://helpx.adobe.com/ru/acrobat/u...r-windows.html. Если же говорить о pdfmake, то есть такая js - https://github.com/bpampuch/pdfmake, в которой есть метод получения файла как, к примеру, данные base64, и которые можно отправить скрытым полем, в простейшем случае.
А вы о чем?
|
|
25.04.2018, 16:47
|
Профессор
|
|
Регистрация: 25.09.2017
Сообщений: 186
|
|
Сообщение от laimas
|
Тогда нужно давать ссылку на то, что используете. Если говорить о pdfmaker, то единственное, что мне известно, это библиотека Эдоба - https://helpx.adobe.com/ru/acrobat/u...r-windows.html. Если же говорить о pdfmake, то есть такая js - https://github.com/bpampuch/pdfmake, в которой есть метод получения файла как, к примеру, данные base64, и которые можно отправить скрытым полем, в простейшем случае.
А вы о чем?
|
Вот она
такая js - https://github.com/bpampuch/pdfmake
|
|
25.04.2018, 16:49
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Ну и какие проблемы? Знаний хватит на простейшее - отправить текстом base64 (если файл не велик) и все необходимое сделать на сервере? Метод то в примере даже описан.
|
|
25.04.2018, 16:55
|
Профессор
|
|
Регистрация: 25.09.2017
Сообщений: 186
|
|
Я в документации ничего не нашел про это...
ТАм кроме стилей и 3-х функций ничего и нет...
Я сделал по инструкции. Файл формируется. Выводится на печать.
// Вывод на печать файла
var docInfo = {
info: {
title:'Тестовый документ PDF',
author:'Viktor',
subject:'Theme',
keywords:'Ключевые слова'
},
pageSize:'A4',
pageOrientation:'portrait',//'portrait'
pageMargins:[50,50,50,50],
header:[
{
text: 'Общая сумма ремонта = ' + full_summ,
alignment:'center',//left right
}
],
footer:function(currentPage,pageCount) {
return {
text: currentPage.toString() + 'из' + pageCount,
alignment:'right',
margin:[0,30,10,50]
}
},
content: [
{
text:'Расчет стоимости ремонта квартиры',
margin:[0,30,0,30],
style:'header'
//pageBreak:'after'
},
{
text:'Параметры квартиры',
margin:[0,0,0,15],
style:'headertwo'
//pageBreak:'before'
},
{
text: 'Количество комнат - ' + print_rooms,
margin:[20,0,0,10],
style:'maintext'
//pageBreak:'before'
},
{
text: 'Площадь квартиры = ' + square + 'кв.м.',
margin:[20,0,0,10],
style:'maintext'
//pageBreak:'before'
},
{
text: 'Количество санузлов = ' + sanuzel,
margin:[20,0,0,10],
style:'maintext'
//pageBreak:'before'
},
{
text:'Капитальные работы',
margin:[0,0,0,15],
style:'headertwo'
//pageBreak:'before'
},
{
text: 'Мокрая стяжка пола - ' + print_styajka,
margin:[20,0,0,10],
style:'maintext'
//pageBreak:'before'
},
{
text: 'Возведение межкомнатных стен - ' + print_walls,
margin:[20,0,0,10],
style:'maintext'
//pageBreak:'before'
},
{
text: 'Демонтаж - ' + print_demontaj,
margin:[20,0,0,10],
style:'maintext'
//pageBreak:'before'
},
{
text: 'Разводка электрики - ' + print_electrik,
margin:[20,0,0,10],
style:'maintext'
//pageBreak:'before'
},
{
text: 'В моем доме деревянные перекрытия - ' + print_woods,
margin:[20,0,0,10],
style:'maintext'
//pageBreak:'before'
},
],
styles: {
header: {
fontSize:20,
bold:true,
alignment:'center'
},
headertwo: {
fontSize:16,
bold:true,
alignment:'left'
},
maintext: {
fontSize:14,
bold:false,
alignment:'left'
}
}
}
pdfMake.createPdf(docInfo).print('name.pdf');
|
|
|
|