Javascript 用jsPDF生成PDF
我正在尝试使用jsPDF将网页中的表格打印为pdf格式。我在一个新窗口中创建了表,在find jsPDF之前我所做的是使用映射表打印整个新页面,但现在我需要下载pdf而不显示打印向导,因此我尝试了脚本,但无法打印表的正确格式。我不得不说,我正在使用另一个名为js的js,因为我需要在我的表中生成一个条形码并将其打印到PDF中,而现在我无法正确打印它 以下是我的JavaScript代码:Javascript 用jsPDF生成PDF,javascript,pdf,jspdf,Javascript,Pdf,Jspdf,我正在尝试使用jsPDF将网页中的表格打印为pdf格式。我在一个新窗口中创建了表,在find jsPDF之前我所做的是使用映射表打印整个新页面,但现在我需要下载pdf而不显示打印向导,因此我尝试了脚本,但无法打印表的正确格式。我不得不说,我正在使用另一个名为js的js,因为我需要在我的表中生成一个条形码并将其打印到PDF中,而现在我无法正确打印它 以下是我的JavaScript代码: JsBarcode(".barcode").init(); var doc = new jsPDF(); v
JsBarcode(".barcode").init();
var doc = new jsPDF();
var specialElementHandlers = {
"#bypassme": function (element, renderer) {
return true
}
};
var margins = {
top: 80,
bottom: 60,
left: 40,
width: 522
};
var source = $("#content")[0];
doc.fromHTML(
source.innerHTML,
margins.left,
margins.top,
{
"width": margins.width,
"elementHandlers": specialElementHandlers
},
function (dispose) {
doc.save("Test.pdf");
},
margins
);
以下是HTML:
<div id="content">
<table border="2px" class="table" style="border: 2px dashed #000; border-collapse: collapse;" >
<tr>
<td style="border: 0px;">
<table class="table" style="font-size:13px;">
<tr style="background-color:#bdbdbd;">
<td>VALUE_0</td>
</tr>
<tr>
<td style="border: 0px;">VALUE_0.1</td>
</tr>
<tr>
<td style="border: 0px;">VALUE_0.2</td>
</tr>
<tr>
<td style="border: 0px;">VALUE_0.3</td>
</tr>
<tr>
<td style="border: 0px;">VALUE_0.4</td>
</tr>
</table>
</td>
<td style="border: 0px;">
<table class="table" border="2px" solid>
<tr style="background-color:#bdbdbd;">
<td><b>VALUE_1</b></td>
</tr>
<tr>
<td style="border: 0px;"><b>VALUE_1.1</b></td>
</tr>
<tr>
<td style="border: 0px;"><b>VALUE_1.2</b></td>
</tr>
<tr>
<td style="border: 0px;"><b>VALUE_1.3</b></td>
</tr>
<tr>
<td style="border: 0px;"><b>VALUE_1.4</b></td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="border: 0px;">
<p><b>VALUE_2</b></p>
<p><b>VALUE_3</b></p>
<p><b>VALUE_4</b></p>
<p><b>VALUE_5</b></p>
</td>
<td style="text-align:center; border:0px;">
<svg class="barcode" jsbarcode-format="code128" jsbarcode-value="VALUE_6" jsbarcode-textmargin="0" jsbarcode-margin="0" jsbarcode-height="50" jsbarcode-fontSize="18" jsbarcode-fontoptions="italic"></svg>
</td>
</tr>
</table>
</div>
现在我在控制台上得到的pdf没有任何代码,但是表没有映射,条形码也没有显示…既然您已经有了jQuery,请尝试使用document.ready
JsBarcode(".barcode").init();
$( document ).ready(function() {
var doc = new jsPDF();
var specialElementHandlers = {
"#bypassme": function (element, renderer) {
return true
}
};
var margins = {
top: 80,
bottom: 60,
left: 40,
width: 522
};
var source = $("#content")[0];
doc.fromHTML(
source.innerHTML,
margins.left,
margins.top,
{
"width": margins.width,
"elementHandlers": specialElementHandlers
},
function (dispose) {
doc.save("Test.pdf");
},
margins
);
});
在使用库时,生成PDF时的样式似乎没有正确设置,或者样式正在从库中删除。尝试使用内联样式I’我在表格上使用内联样式尝试使用类I’我尝试删除内联样式规则和类,我得到了相同的结果,条形码没有呈现。生成pdf one think soNope中不支持VG,它不起作用。。。但是我已经用一个简单的div测试了相同的js代码,它包含一个简单的HTML
Hi 你好,世界
也不起作用,所以问题可能出在js代码中,因为我知道我无法执行函数(dispose)
代码,但我不知道为什么:(
JsBarcode(".barcode").init();
$( document ).ready(function() {
var doc = new jsPDF();
var specialElementHandlers = {
"#bypassme": function (element, renderer) {
return true
}
};
var margins = {
top: 80,
bottom: 60,
left: 40,
width: 522
};
var source = $("#content")[0];
doc.fromHTML(
source.innerHTML,
margins.left,
margins.top,
{
"width": margins.width,
"elementHandlers": specialElementHandlers
},
function (dispose) {
doc.save("Test.pdf");
},
margins
);
});