0

抱歉,我的英语不太好。我有一个关于 jsPDF 自动表的问题。经过数小时令人沮丧的代码运行并创建一个 PDF 文件。

这是我的代码:

    $('#printBtn').on('click', function() {
    var pdf = new jsPDF('p', 'pt', 'a4');
    var res = pdf.autoTableHtmlToJson(document.getElementById("tablePrint"));

    pdf.autoTable(res.columns, res.data, {
        theme : 'plain',
        styles: {
            fontSize: 12
        },
        showHeader: 'never'
    });

    pdf.save("test.pdf");
});

我在 github 存储库中进行了搜索,并在 examples.js 中找到了一个代码片段,它可能对我有帮助,但我不知道我是如何工作的......

        parsedInput: function (cell, data) {
            if (data.column.dataKey === 'name') {
                cell.styles.fontStyle = 'bold';
            }
        }

例如,我有一张桌子

<table>
<tbody>
<tr>
<td class="hrow">15.11.2016</td>
<td class="hrow">11:20</td>
<td class="hrow"></td>
</tr>
<tr>
<td></td>
<td>Musterfrau</td>
<td>Mustermann</td>
</tr>
<tr>
<td></td>
<td>Musterfrau XYZ</td>
<td>XXX</td>
</tr>
<tr>
<td class="hrow">15.11.2016</td>
<td class="hrow">11:20</td>
<td class="hrow"></td>
</tr>
<tr>
<td></td>
<td>Musterfrau</td>
<td>Mustermann</td>
</tr>
<tr>
<td></td>
<td>Musterfrau XYZ</td>
<td>XXX</td>
</tr>
<tr>
<td></td>
<td>Example cell</td>
<td>acusduhfsd</td>
</tr>
<tr>
<td class="hrow">15.11.2016</td>
<td class="hrow">11:20</td>
<td class="hrow"></td>
</tr>
<tr>
<td></td>
<td>Musterfrau dfg</td>
<td>Mustermann dfhgd</td>
</tr>
<tr>
</tbody>
</table>

我希望行分别具有“hrow”类的单元格以粗体显示里面的文本。

我怎样才能做到这一点?

感谢帮助。

4

1 回答 1

0

尝试这样的事情:

pdf.autoTable(res.columns, res.data, {
    didParseCell: function(data) {
        var tdElement = data.cell.raw;
        if (tdElement.classList.contains('hrow')) {
            data.cell.styles.fontStyle = 'bold';
        }
    }
});

未经测试,但应该使具有 css 类的单元格变为hrow粗体。

于 2017-11-14T21:40:50.100 回答