亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

嘗試將 html 表打印為 pdf 時出錯

嘗試將 html 表打印為 pdf 時出錯

LEATH 2023-03-18 17:48:57
我正在嘗試將 html 表打印為 pdf。在 javascript 中打印表格的代碼如下所示:function createPDF(){    var table = document.getElementById('mytable');    var style = "<style>";    style = style + "table {width: 100%;font: 17px Calibri;}";    style = style + "table, th, td {border: solid 1px #DDD; border-collapse: collapse;";    style = style + "padding: 2px 3px;text-align: center;}";    style = style + "</style>";    // CREATE A WINDOW OBJECT.    var win = window.open('', '', 'height=700,width=700');    win.document.write('<html><head>');    win.document.write('<title>Profile</title>');   // <title> FOR PDF HEADER.    win.document.write(style);          // ADD STYLE INSIDE THE HEAD TAG.    win.document.write('</head>');    win.document.write('<body>');    win.document.write(table);         // THE TABLE CONTENTS INSIDE THE BODY TAG.    win.document.write('</body></html>');    win.document.close();   // CLOSE THE CURRENT WINDOW.    win.print();    // PRINT THE CONTENTS.}該表如果用 javascript 動態填充,不知道這是否重要。無論如何,每當我嘗試打印 html 表格時,我都會在我的 pdf 文檔中得到 [object HTML TableElement]。有人知道問題出在哪里嗎?
查看完整描述

1 回答

?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

  1. 您需要從表中獲取 HTML - 您只獲取對象 - 而不是執行
    var table = document.getElementById('mytable').outerHTML 或
    將表對象附加到 win.document 但無論如何

  2. 你真的應該只寫一次

function createPDF(){

    const table = document.getElementById('mytable').outerHTML;


    const style = `<style>

     table {width: 100%;font: 17px Calibri;} 

     table, th, td {border: solid 1px #DDD; border-collapse: collapse; 

     padding: 2px 3px;text-align: center;} 

     </style>`;


    // CREATE A WINDOW OBJECT.

    const win = window.open('', '', 'height=700,width=700');

    const html = `<title>Profile</title>

    ${style}

    ${table}`;

    

    win.document.write(html);

    win.document.close();   

    win.print();    

}

使用對象(未測試):


function createPDF(){

    const table = document.getElementById('mytable');


    const style = document.createElement("style");

    style.textContent = `table {width: 100%;font: 17px Calibri;} 

     table, th, td {border: solid 1px #DDD; border-collapse: collapse; 

     padding: 2px 3px;text-align: center;}`

     


    // CREATE A WINDOW OBJECT.

    const win = window.open('', '', 'height=700,width=700');

    const doc = win.document;

    const title = document.createElement("title");

    title.textContent = "Profile"

    doc.body.append(title);

    doc.body.append(style);

    doc.body.append(table);

    win.print();    

}


查看完整回答
反對 回復 2023-03-18
  • 1 回答
  • 0 關注
  • 150 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號