2016-08-05 20 views
4

Mein Tisch hat 13 Spalten. Wie kann ich für jede Spalte eine andere Breite erhalten? Kann ich jede Spaltenbreite so angeben?Unterschiedliche Breite für jede Spalte in jspdf autotable?

Stile: {Überlauf: 'Zeilenumbruch', column: [100,80,80,70,80,80,70,70,70,70,60,80,100]},

Mein Tisch Syntax:

> var res = doc.autoTableHtmlToJson(document.getElementById(tableID)); 
> doc.autoTable(res.columns, res.data, { styles: {overflow: 'linebreak' 
> ,columnWidth: [100,80,80,70,80,80,70,70,70,70,60,80,100]}, startY: 
> 60, bodyStyles: {valign: 'top'}, }); 
+0

Warum müssen Sie die Breite jeder Spalte angeben? Funktioniert die automatische Breitenberechnung nicht für Ihren Anwendungsfall? –

Antwort

8

Sie haben würde Ihr column Array zu verwandeln wie folgt aussehen:

doc.autoTable(res.columns, res.data, {columnStyles: { 
    0: {columnWidth: 100}, 
    1: {columnWidth: 80}, 
    2: {columnWidth: 80}, 
    // etc 
}}); 

Beachten Sie die Verwendung von columnStyles statt styles.

+0

Hallo Simon, das ist, was ich gesucht habe. Vielen Dank ! –

+1

nur einen Fehler im Code bemerkt, muss es 'Column sein: { \t \t \t \t 0: {column: 60}, \t \t \t \t 1: {column: 40}, \t \t \t \t 2 : {spalteBreite: 100} // usw. \t \t \t \t} ' –

+0

@Abdu Rahiman, ist Ihr Problem gelöst? –

2

Lassen Sie uns sagen, [Schritte, Methoden, Verfahren, liefert, Ergebnisse] sind alle meine Tabelle Headers.If ich will Tischbreite bedeuten erhöhen oder zu verringern,

columnStyles: { 
    steps: {columnWidth:215}, 
    Methods: {columnWidth: 60}, 
    process: {columnWidth: 100}, 
    Delivers: {columnWidth: 90}, 
    Result: {columnWidth: 90} 
} 

Hier können Sie die jeweils Spaltenbreite angeben .

1

In früheren Version (1.3.4) ist es wie unten getan haben könnte:

var columns = [ 
      {title: "Signum", dataKey: "signum"}, 
      {title: "Name", dataKey: "name"}, 
      {title: "Role", dataKey: "role"}, 
      {title: "Location", dataKey: "location"} 
      ] 

Aber das späteste dh 2.3.2 erfordert das unten stehende Format

doc.autoTable(colums,data,{ 
    addPageContent:pageContent, 
    margin: {horizontal:5,top: 20}, 
    startY: 0.47*doc.internal.pageSize.height, 
    styles: {overflow: 'linebreak'}, 
    columnStyles: { 
    id: {columnWidth: 25}, 
    name:{columnWidth:40}, 
    role: {columnWidth: 15}, 
    location: {columnWidth: 30} 
    } 
    }); 

Dies wird nur fest, id , Name, Rolle und Position zu den angegebenen Grenzwerten. Rest andere Header werden entsprechend angepasst von autotable.js

Verwandte Themen