1

Очень распространенным требованием является загрузка данных, отображаемых на экране, в виде файла PDF или функции «mail-a-friend», которая отправляет данные по указанному вами адресу электронной почты адрес.Создание электронных писем PDF или HTML с использованием моделей и моделей Backbone/Marionette

Я использую Backbone и Marionette и хотел бы получить данные из моих моделей, которые будут созданы в формате & в формате PDF. По сути, я хотел бы отправить по электронной почте свое «представление» (или сбросить его в pdf-файл!)

Вопрос: Возможно ли повторное использование шаблонов экрана для отображения того же элемента, что и адрес электронной почты (и/или выгрузить его в файл PDF)?

Я видел другие варианты, такие как jspdf.com, однако использование этого означало бы создание другого формата для электронных писем/pdf-файлов заново !?

Я попытался собрать ответ ниже, но все еще ищу любой плагин или lib, которые могут облегчить жизнь для создания PDF или html-писем.

ответ

1

Самый простой способ, который я нашел, - создать новые или повторно использовать существующие шаблоны (при необходимости) и использовать модели для генерации html из скомпилированных шаблонов (подчеркивание или руля). Использование существующего представления el для захвата элементов dom не является хорошей идеей, так как у многих из них есть дополнительные классы, связанные с использованием jQuery или других фреймворков.

Также возможно использовать несколько шаблонов и добавить результат в div, поэтому полное представление данных может быть создано в формате электронной почты или для печати.

Я создал DIV в конце doucment который обычно пустует:

<button id="email-itinerary">Email Details</button> 
............ 
............ 
............ 
    <div id="email-dialog"> 
    </div> 

При нажатии кнопки E-mail Подробности, обработчик для этой кнопки, использует шаблоны выполнены & модели для генерации HTML.

var result = "<table border=\"1\">" + 
     "<tr>" + 
         //add table headers here 
     "</tr>"; 
var compile = Handlebars.compile($("#email-template").html().trim()); 
for(var i=0;i<collection.length;i++) { 
    result += compile(collection.at(i).toJSON()); //generates <tr> 
} 
result += "</table>"; //finish table. 
    //use more templates to add other data, and append to result variable. 
    //Finally add the html to div 
      $("#email-dialog").empty(); 
    $("#email-dialog").append($.parseHTML(result)); 
    $("#email-dialog").dialog({ 
      title: "Hotels - at a glance", 
      modal: true, 
      height: 550, 
      width: 1000, 
     }); 

PDF: Я все еще должен найти лучшее решение для генерации PDF.

+0

Я использую pdfMake – Muhaimin

 Смежные вопросы

  • Нет связанных вопросов^_^