我是一名新手,正在尝试使用 NodeJS/Express 和 Handlebars 构建网络应用程序来满足模板需求。
应用程序的一部分处理生成销售发票。我已经编写了一个 Handlebars 模板以及一些 javascript 代码来处理项目的添加/删除和计算总计等工作正常。
需要在 NodeJS 服务器上生成此发票的 PDF 格式,其中包含在客户端添加的动态内容。
我不确定如何着手实现。我已经评估了客户端 PDF 生成选项,但它不适合我的用例。
当客户端html页面中有动态元素时,请问是否可以在服务器端生成pdf?
该应用类似于此链接中的应用:http://www.smarttutorials.net/invoice-system-using-jquery-autocomplete/
动态部分代码如下:
//添加额外的表格行
var i=$('table tr').length;
$(".addmore").on('click',function(){
html = '<tr>';
html += '<td><input class="case" type="checkbox"/></td>';
html += '<td><input type="text" data-type="productCode" name="itemNo[]" id="itemNo_'+i+'" class="form-control autocomplete_txt" autocomplete="off"></td>';
html += '<td><input type="text" data-type="productName" name="itemName[]" id="itemName_'+i+'" class="form-control autocomplete_txt" autocomplete="off"></td>';
html += '<td><input type="text" name="price[]" id="price_'+i+'" class="form-control changesNo" autocomplete="off" onkeypress="return IsNumeric(event);" ondrop="return false;" onpaste="return false;"></td>';
html += '<td><input type="text" name="quantity[]" id="quantity_'+i+'" class="form-control changesNo" autocomplete="off" onkeypress="return IsNumeric(event);" ondrop="return false;" onpaste="return false;"></td>';
html += '<td><input type="text" name="total[]" id="total_'+i+'" class="form-control totalLinePrice" autocomplete="off" onkeypress="return IsNumeric(event);" ondrop="return false;" onpaste="return false;"></td>';
html += '</tr>';
$('table').append(html);
i++;
});
//删除选中的表格行
$(".delete").on('click', function() {
$('.case:checkbox:checked').parents("tr").remove();
$('#check_all').prop("checked", false);
});
最佳答案
被视为您正在使用 express,并有能力使用这些数据创建网页。
我会使用 https://www.npmjs.com/package/phantom
这可用于将您的网页转换为 PDF,您还可以使用 CSS 属性 page-break-after
.. 等控制分页符。
关于javascript - 在 Node JS/Express Web 应用程序中生成 PDF 报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45797068/