2016-11-01 20 views
5

中的代碼問題:如何樣式標題在導出PDF DataTable中

$("#my-table").DataTable({ 
      data: dataSet, 
      columns: columns, 
      dom: 'Bfrtip', 
      buttons: [ 
       { 
        extend: 'excelHtml5', 
        title: 'Awesome Export', 
       }, 
       { 
        extend: 'pdfHtml5', 
        title: 'Awesome Export', 
        orientation: 'landscape', 
        pageSize: 'LEGAL' 
       } 
      ] 
     }); 

我如何使用,也許HTML樣式標題:

var title = '<h1>My title</h1><br /> <p>by John</p>'; 

// then in the code 
... 
buttons: [ 
    { 
     extend: 'excelHtml5', 
     title: title 
    } 
] 
... 

如果我試圖做到這一點顯示HTML標籤而不是樣式。

+0

這只是在DOM中創建一個表的權利?如果是這樣的話,那麼你可以只定位你的表標籤,然後設計它們。 –

+0

看起來像datatables pdf渲染引擎不支持標題上的html標籤。你使用什麼pdf渲染? – sebkrueger

+0

@sebkrueger我只是使用開箱即用的dataTables,我認爲它可能是pdfMake – ImpendingDoom

回答

3

您不能在標題中使用HTML。似乎沒有辦法繞過這個限制。順便說一下,這不是您期望從PDFmake獲得的簡單任務。想想看 - 任何類型的HTML元素都應該映射到在畫布上繪製PDF時使用的默認樣式。但是,如果您關心的是換行符\n將作爲<br>,即

var title = 'My title' + '\n' + 'by John'; 

唯一真正的選擇你已經是一個非常有限的「僞」 -CSS引用您可以在customize添加到doc.styles.title字面回電話。例如

buttons: [{ 
    extend: 'pdfHtml5', 
    title: 'My title' + '\n' + 'a new line', 
    customize: function(doc) { 
    doc.styles.title = { 
     color: 'red', 
     fontSize: '40', 
     background: 'blue', 
     alignment: 'center' 
    } 
    } 
}] 

看到這樣一個例子 - >https://jsfiddle.net/ztjLtbwm/

我把它稱爲「僞」 -CSS的原因是,工作的實體是相同的CSS等價或非常接近。請參閱此處支持的樣式的完整列表 - >https://github.com/bpampuch/pdfmake/blob/master/src/styleContextStack.js#L84您必須嘗試每個實體的錯誤,例如fillColor似乎不受title的尊重; background確實 - 但不是backgroundColor