javascript - 在 Node JS/Express Web 应用程序中生成 PDF 报告

标签 javascript jquery node.js express handlebars.js

我是一名新手,正在尝试使用 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/

相关文章:

JavaScript:谷歌地图mapOptions?

javascript - Bootstrap Modal - 在模态内捕捉链接点击?

node.js - 如何修复 XMLHttpRequest 已被 CORS 策略阻止

node.js - 测试中的异常行为 : node. js/Mocha

node.js - 在 Visual Studio Code 中调试 Outlook 的 Web 加载项

javascript - Datatables JS 通过单列值获取行索引 PHP

javascript - AngularJS 字符串在 HTML 中替换

javascript - 减少一组谓词函数

php - 在 jQuery 中克隆或向表单添加输入不会提交到 Firefox 中的 PHP

jQuery - 按值隐藏选项元素