Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 25.04.2018, 16:59
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от the_little
Я в документации ничего не нашел про это...
На первой же странице:

const pdfDocGenerator = pdfMake.createPdf(docDefinition);
pdfDocGenerator.getBase64((data) => {
    //тут помещайте data в скрытое поле формы, и отправляйте на сервер
    //выполнив этот метод, если выбрана отправка 
});


Как вы читаете доки то? А можно и BLOB отправить как файл, и такой метод есть.
Ответить с цитированием
  #12 (permalink)  
Старый 25.04.2018, 18:41
Профессор
Отправить личное сообщение для the_little Посмотреть профиль Найти все сообщения от the_little
 
Регистрация: 25.09.2017
Сообщений: 186

Сообщение от laimas Посмотреть сообщение
На первой же странице:

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); 
});

И потом это поле передаю на сервер. Потом на сервере нужно будет что-то делать, чтобы из этого собрать файл? Или это будет просто текстовая информация?
Ответить с цитированием
  #13 (permalink)  
Старый 25.04.2018, 18:55
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от the_little
А этот метод, он в каком виде передает это?
В base64. На сервере декодировать и получится файл (исходные бинарные данные его).
Ответить с цитированием
  #14 (permalink)  
Старый 25.04.2018, 19:14
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Чего вы собираетесь делать с файлом этим на сервере, да и вообще нафига он нужен, но почтой файл передается как раз в base64 (Content-Transfer-Encoding:base64), то есть переданный таким образом файл и декодировать не нужно будет, если он только для отправления почты. Его нужно будет только разбить на строки, в РНР это функция chunk_split.
Ответить с цитированием
  #15 (permalink)  
Старый 25.04.2018, 20:11
Профессор
Отправить личное сообщение для the_little Посмотреть профиль Найти все сообщения от the_little
 
Регистрация: 25.09.2017
Сообщений: 186

Думаю сейчас разберусь. Другой вопрос вылез.

Сейчас написано так.

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?

Последний раз редактировалось the_little, 25.04.2018 в 20:13.
Ответить с цитированием
  #16 (permalink)  
Старый 25.04.2018, 20:34
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

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

Ваш калькулятор, судя по данным, прост как валенок , неужели нельзя было результат расчета организовать как таблицу, которую распечатать то ведь не так и сложно, более того, можно даже в отдельном окне, запросив сервер, который вернет все в каком-то "шикарном шаблоне" для печати, или использовать meda print? Неужели рационально отсылать почтой какой-то файл, вместо того, чтобы отправить обычное почтовое html сообщение?

Я ничего не имею против, охота пуще неволи, но когда вместо пользы геморрой, я этого не понимаю.
Ответить с цитированием
  #17 (permalink)  
Старый 25.04.2018, 22:20
Профессор
Отправить личное сообщение для the_little Посмотреть профиль Найти все сообщения от the_little
 
Регистрация: 25.09.2017
Сообщений: 186

Сообщение от laimas Посмотреть сообщение
Не знаю, у меня эта приблуда только в закладках браузера, реально же не использовал ни разу, ибо то, что действительно нужно когда-то готовить как PDF (презентации и прочие доки), все это готовится на сервере. Мне надо потратить немного времени, чтобы "пощупать" эту приблуду.

Ваш калькулятор, судя по данным, прост как валенок , неужели нельзя было результат расчета организовать как таблицу, которую распечатать то ведь не так и сложно, более того, можно даже в отдельном окне, запросив сервер, который вернет все в каком-то "шикарном шаблоне" для печати, или использовать meda print? Неужели рационально отсылать почтой какой-то файл, вместо того, чтобы отправить обычное почтовое html сообщение?

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

Мне просто интересно, можно ли получить данные переменной, которая задана внутри функции, извне этой самой функции. Вот в чем вопрос) Простым способом она получается НЕОПРЕДЕЛЕНА
Ответить с цитированием
  #18 (permalink)  
Старый 25.04.2018, 22:37
Профессор
Отправить личное сообщение для the_little Посмотреть профиль Найти все сообщения от the_little
 
Регистрация: 25.09.2017
Сообщений: 186

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

function changeFunc(){
    var docInfo = хххххххх;
    return docInfo;
 }
$('#printfile').click(function() {
	var docInfo = changeFunc();
	pdfMake.createPdf(docInfo).print('name.pdf');
});


Теперь расчеты в одном экземпляре, все остальное отдельными функциями.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка файла на сервер и отправка на почту qwe88 Общие вопросы Javascript 9 13.10.2014 19:33
отправка письма на почту (php) cyber Серверные языки и технологии 25 24.02.2014 12:37
Отправка файла с фиксированым местоположением по нажатию кнопки greencard AJAX и COMET 16 17.07.2013 15:22
Как вывести содержимое PHP файла с помощью JS? pavdin Серверные языки и технологии 6 22.12.2010 14:16
Отправка POST через JS без перехода на другую страницу m-mikle Общие вопросы Javascript 17 14.04.2010 15:24