Javascript jsPDF,fromHTML插件不创建PDF,并表示未定义

Javascript jsPDF,fromHTML插件不创建PDF,并表示未定义,javascript,html,jspdf,jspdf-autotable,Javascript,Html,Jspdf,Jspdf Autotable,以下HTML和JavaScript用于创建收据PDF。PDF将在收据打印机中打印,纸张尺寸为80 mm宽。打印高度将根据三个部分(页眉、页脚和购买项目)的长度计算 我尝试使用此代码,但它没有创建PDF打印 JavaScript $(document).ready(function() { $(".btn").click(function() { var contentHeight; // header + footer + number of buying ite

以下HTML和JavaScript用于创建收据PDF。PDF将在收据打印机中打印,纸张尺寸为80 mm宽。打印高度将根据三个部分(页眉、页脚和购买项目)的长度计算

我尝试使用此代码,但它没有创建PDF打印

JavaScript

$(document).ready(function()
{
    $(".btn").click(function()
    {
        var contentHeight; // header + footer + number of buying items
        var doc = new jsPDF("p", "mm", [80, contentHeight]),
            source = $("#template_invoice"),
            margins = {
                top: 10,
                //bottom: 60,
                left: 5,
                width: 80    // Receipt printer width
            };
        doc.fromHTML(
            source, // HTML string or DOM elem ref.
            margins.left, // x coord
            margins.top,
            {
                // y coord
                width: margins.width // max width of content on PDF
            },
            function(dispose)
            {
                // dispose: object with X, Y of the last line add to the PDF
                // this allow the insertion of new lines after html
                doc.save("Test.pdf");
            },
            margins
        );
    });
});
HTML


收据PDF
桌子{
字体系列:“Courier New”,Courier,monospace;
}
td#aliCenter{
文本对齐:居中;
}
td#对{
文本对齐:右对齐;
}
ABC餐厅岛阳光路
联系人:123456789 2018年11月15日02:14:52 IamCoder编号:150
不 项目 数量 价格 数量
1. 美味的大比萨饼 PZ4545 2 150 300 2. 松脆的大家伙 BR7878 5 500 2500 3. 1.5升可口可乐包装 CC6523 3 180 540
净总额 3340 现金 3500 均衡 160 -----------重要通知----------- 如果出现价格差异,
请在
2天内退回账单和物品,以退还差异 下载
您会遇到一个错误:

未捕获的TypeError:无法读取未定义的属性“name”

因为。而且样式也不受支持

我用jsPDF插件为您编写了解决方案

解决方法/解决方案

函数alignCol(单元格、数据、列计数)
{
cell.styles.fillColor=false;
var col=data.column.index;
if(colCount==1)
cell.styles.halign='center';
其他的
{
if(colCount==2)
cell.styles.halign='左';
其他的
{
如果(列<列计数-1)
cell.styles.halign='左';
else cell.styles.halign='right'
}
}
}
$(文档).ready(函数()
{
$(“.btn”)。单击(函数()
{
var期权=
{
保证金:0,
colCount:1,
桌宽:226.772,
drawHeaderRow:function(){return false},
drawHeaderCell:function(){return false},
createdCell:function(cell,data){alignCol(cell,data,options.colCount)}
},
桌面宽度5=
{
0:{columnWidth:26},
1:{columnWidth:50},
2:{columnWidth:45},
3:{columnWidth:45},
4:{columnWidth:60}
};
//仅支持pt(不支持毫米或英寸)
var contentHeight=400;//页眉+页脚+购买项目数
//80毫米=226.772磅
var doc=新的jsPDF('p','pt',[contentHeight,226.772]);
文件设置字体大小(3);
文件setFont(“新快递”);
文件自动表格([0],[ABC餐厅\n南尼路,岛\n联系人:123456789\n15/11/2018 02:14:52 IamCoder No:150'],选项);
文件行(0,60,226,60);
options.columnStyles=表格宽度5;
options.startY=60;
options.colCount=5;
单据自动表([0,0,0,0,0],[NO','ITEM','Quantity','PRICE','AMOUNT'],选项);
文件行(0,80,226,80);
options.columnStyles={0:{columnWidth:26};
options.startY=80;
options.colCount=2;
文档自动表([0,0],[1,'TheBigTastyPizza']],选项);
options.columnStyles=表格宽度5;
options.startY=100;
options.colCount=5;
文档自动表([0,0,0,0,0],[PZ4545','2.00','150.00','300.00'],选项);
options.columnStyles={0:{columnWidth:26};
options.startY=120;
options.colCount=2;
文档自动表([0,0],[2,'Crunchy-mage-Buggers'],选项);
options.columnStyles=表格宽度5;
options.startY=140;
options.colCount=5;
文档自动表([0,0,0,0,0],[BR7878','5.00','500.00','2500.00'],选项);
options.columnStyles={0:{columnWidth:26};
options.startY=160;
options.colCount=2;
文件自动表格([0,0],[3,'1.5升可口可乐包装]],选项);
options.columnStyles=表格宽度5;
options.startY=180;
options.colCount=5;
文档自动表([0,0,0,0,0],[CC6523','3.00','180.00','540.00'],选项);
文件行(0、210、226、210);
options.columnStyles={0:{columnWidth:26};
options.startY=220;
options.colCount=3;
文档自动表([0,0,0][
['','净总额','3340.00'],
['','现金','3500.00'],