Javascript 用jsPDF生成PDF

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

我正在尝试使用jsPDF将网页中的表格打印为pdf格式。我在一个新窗口中创建了表,在find jsPDF之前我所做的是使用映射表打印整个新页面,但现在我需要下载pdf而不显示打印向导,因此我尝试了脚本,但无法打印表的正确格式。我不得不说,我正在使用另一个名为js的js,因为我需要在我的表中生成一个条形码并将其打印到PDF中,而现在我无法正确打印它

以下是我的JavaScript代码:

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
); 
});