当前位置: 首页 > 知识库问答 >
问题:

如何在数据表pdf导出中通过CSS类自定义列字体(大小和样式)?

陈俊郎
2023-03-14

你们能给我演示一下如何在DataTables html5 PDF导出的customize(doc)函数中使用css类更改doc对象中的列字号和权重吗。

我有一个datatable,其中一些列必须是粗体的,并且比其他列大。

我有以下按钮定义(,这似乎不起作用

$('.data-table').DataTable({
buttons: [
            {
                extend: 'pdfHtml5',
                text: '<i class="fa fa-file-pdf-o fa-lg" style="color: red"></i> PDF',
                titleAttr: 'Export to PDF',
                orientation: 'auto',
                className: 'btn btn-default',

                customize: function (doc) {
                    doc.defaultStyle.fontSize = 8;

                    doc.content[1].table.widths = ['*', 70, 70];

                    doc.styles['td.bigcol'] = {
                        fontSize: 16,
                        bold: true,
                    };

                    doc.content.splice(1, 0, {
                        margin: [0, 0, 0, 12],
                        image: 'data:image/png;base64,' + imageStr,
                        fit: [80, 80]
                    });

                }
            }
        ]
});

我的表类似于这样:

<table class="table data-table">
<thead>
<tr>
   <td class="bigCol">
            Some List of things
        </td>
        <td></td>
        <td></td>
    </tr>
</thead>

<tbody>
    <tr>
        <td class="bigCol">On List 1</td>
        <td></td>
        <td></td>
    </tr>
    <tr>
        <td>data</td>
        <td>data</td>
        <td>data</td>
    </tr>
    <tr>
        <td>data</td>
        <td>data</td>
        <td>data</td>
    </tr>
    <tr>
        <td>data</td>
        <td>data</td>
        <td>data</td>
    </tr>
    <tr>
        <td class="bigCol">list 1 totals</td>
        <td>data</td>
        <td>data</td>
    </tr>
  </tbody>
</table>

这就像列表9一样。该表在浏览器窗口上显示正确,但pdf格式的ayayayyy

多谢了。

共有1个答案

申屠昌胤
2023-03-14

终于得到了..在这个帖子的帮助下。

在customize函数中,我使用Jquery遍历每个表的行,然后遍历每个行的列,以获得行索引和列索引,然后使用doc对象中表上的这些索引为列定义样式

doc.content[1].table.widths = ['*', 70, 70];

$('.data-table').find('tr').each(function(ix, row) {
    var index = ix;

    $(row).find('td').each(function(ind, column) {
        if ($(column).hasClass('bigCol')) {

            var fontSize = $(column).css('font-size').replace('px', '');

            doc.content[1].table.body[index][ind].style = {
                fontSize: parseInt(fontSize)
                bold: true
            };
        }
    });
});

DOM表上的索引与单据表体对象上的索引是等价的

 类似资料:
  • 问题内容: 我正在尝试在的列表项上使用CSS设置自定义SVG图标。例: 问题是图像太大,并且拉伸了线条的高度。我不想更改图像大小,因为使用SVG的目的是根据分辨率进行缩放。有没有一种方法可以使用CSS设置图像的大小,而无需进行任何改动? 编辑:这是预览(故意为插图和戏剧选择大图像) : //jsfiddle.net/tWQ65/4/ 和我当前的解决方法,使用CSS3 :http : //jsfid

  • 问题内容: 我已经使用 Zurb Foundation 3 网格创建了一个站点。每个页面都有一个大的: 当我将浏览器调整为移动大小时,大字体不会调整,并导致浏览器包含水平滚动条以适应大文本。 我注意到在 Zurb Foundation 3 Typography示例页面上,标题在压缩和扩展时适应浏览器。 我是否真的缺少明显的东西?我该如何实现? 问题答案: 在调整浏览器窗口时,就不会这样回应。相反,

  • 问题内容: 我有一台Mac,并且安装了一种名为“ 7 Segment”的字体(它显示在Font Book中)。当我使用Helvetica(或类似字体)而不是浏览器的默认字体时,它仍然没有显示正确的字体。该页面仅需要在此计算机上显示。我将如何使用此页面上的字体?谢谢。 问题答案: 您需要使用css-property font-face来声明您的字体。 例:

  • 我使用的是DataTables中的jQuery DataTables。我想定制这些表的导出文件插件,如CSV、Excel、PDF和打印按钮。如果我打印一个PDF,它总是在标题中说jQuery数据表文件导出的标题。我该如何自定义?我还想在导出CSV、PDF和Excel文件时自定义文件名。我检查了插件中的代码,但我看不到导出文件选项中的代码来定制它。我需要一个扩展来下载吗?抱歉,我只是刚接触jQuer

  • 我正在使用IText7从html字符串生成pdf。现在,我需要对段落应用自定义颜色和自定义字体或字体系列。 如何使用Itext7实现这一点? 谢谢

  • 我看到了一些关于hashMaps的东西,但我们的工作还没有做得那么远。请保持您的答案和有用的建议,尽可能简单,你可以管理。 我有一个自定义的数据类型,它已经被制作好了,并且可以完美地工作,叫做color。该类型的唯一值是Color.Blue、Color.Red、Color.Yellow和Color.Green。 我的任务是返回颜色。如果列表中的颜色比其他颜色多,则返回颜色。如果列表中的颜色比其他颜