Javascript jsPDF,fromHTML插件不创建PDF,并表示未定义
以下HTML和JavaScript用于创建收据PDF。PDF将在收据打印机中打印,纸张尺寸为80 mm宽。打印高度将根据三个部分(页眉、页脚和购买项目)的长度计算 我尝试使用此代码,但它没有创建PDF打印 JavaScriptJavascript 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
$(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'],