首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在jspdf-autotable中居中显示div

如何在jspdf-autotable中居中显示div
EN

Stack Overflow用户
提问于 2019-04-16 23:12:31
回答 1查看 1.2K关注 0票数 0

如何在jspdf-autotable中居中放置div。我正在尝试以下代码,但得到的结果类似于下面的屏幕截图以及此jsfiddle中的详细信息

代码语言:javascript
复制
// Header content function
    let header = function(data) {
        doc.setFontSize(18);
        doc.setTextColor(40);
        doc.setFontStyle('normal');

        headerHtml = '<div style="text-align: center;">' +
                        '<h2>Main Header</h2> ' +
                        '<h3>Second Header</h3>' +
                        '<h4>Third Header</h4>' +
                    '</div>';    
        doc.fromHTML(
            headerHtml,
            50, //x coord
            10, //y coord
            {
                useCss: true,
                margin: {left:0, right: 0},
                align: "center"
            }
        );
    };
// Auto table content options
    let autoTableOptions = {
        html: table,
        startY: 100, //false
        //margin: {top: 30},
        theme: 'plain', //striped, plain, grid
        cellWidth: 'auto',
        useCss: true,
        margin: {bottom:20},
        showHead: 'everyPage', //false, 'everyPage', 'firstPage'
        styles: {
            fontSize: 10.5, //14px
            font: 'helvetica', //helvetica, times, courier
            lineColor: [0, 0, 0], //or single value ie. lineColor: 255,
            lineWidth: .75, //1px
            cellPadding: 1.5,
            textColor: [0, 0, 0],
            fillColor: [255, 255, 255], //false for transparent or number or array of number
            valign: 'middle', //top, middle, bottom
            halign: 'left', //left, center, right
            cellWidth: 'auto', //'auto', 'wrap' or a number
            overflow: 'visible', //visible, hidden, ellipsize or linebreak
            fontStyle: 'normal', //normal, bold, italic, bolditalic
            rowPageBreak: 'always', //always, auto, avoid
            useCss: true,
        },
        didDrawPage: function (data) {
            // Header Content
            //let pageNumber = doc.internal.getNumberOfPages();
            if(data.pageNumber === 1) {
                header(data);
            }
        },
    };
    doc.autoTable(autoTableOptions);

截图:

有谁可以帮我?

我很抱歉有任何不清楚的问题,请让我知道。提前感谢

EN

回答 1

Stack Overflow用户

发布于 2019-04-19 22:31:04

要获得预期结果,请使用以下选项查找页面宽度并将其用于x坐标

代码语言:javascript
复制
let pdfWidth = doc.internal.pageSize.getWidth();

使用页面宽度的一半作为页眉的x坐标

代码语言:javascript
复制
doc.fromHTML(
            headerHtml,
            pdfWidth/2, //x coord
            10, //y coord
            {
                useCss: true,
                margin: {left:0, right: 0},
                halign: "center"
            }
        );

codepen - https://codepen.io/nagasai/pen/rbvdeE

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55711429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档