2015-04-15 7 views
21

ich wie ein PDF mit einer HTML-Tabelle erstellen möchtenWarum funktioniert border-collapse nicht in html2pdf? So schuf ich diesen HTML <img src="https://i.stack.imgur.com/eAsmE.png" alt="tableEx"></p> <p>:

<table style="width: 100%; border:2px solid; border-collapse: collapse; padding: 0; margin: 0;"> 
    <tr style="border-bottom: 1px solid;"> 
     <th style="border-left: 1px solid; width: 60%;">Ref produit</th> 
     <th style="border-left: 1px solid; width: 10%;">Taille</th> 
     <th style="border-left: 1px solid; width: 10%;">Quantit�</th> 
     <th style="border-left: 1px solid; width: 10%;">Prix net HT</th> 
     <th style="border-left: 1px solid; width: 10%;">Montant HT</th> 
    </tr> 
    <tr> 
     <td style="border-left: 1px solid;">BAL100</td> 
     <td style="border-left: 1px solid; text-align: center;">S</td> 
     <td style="border-left: 1px solid; text-align: center;">20</td> 
     <td style="border-left: 1px solid; text-align: center;">22.00</td> 
     <td style="border-left: 1px solid; text-align: center;">440</td> 
    </tr> 
    <tr> 
    . 
    . 
    . 
    </tr> 
</table> 

Das pdf Ergebnis ist:

enter image description here

Die Grenze verschwunden !

Wenn ich die Eigenschaft border-collapse: collapse; entfernen, erscheinen die Grenzen, aber das Ergebnis ist nicht geeignet.

Ich sehe auf der official forum (französische Post), dass die Eigenschaft border-collapse nur auf das Tag table funktioniert. Also verstehe ich nicht, warum meine Tabelle nicht richtig generiert wird.

Irgendeine Idee?

Hier ist mein PHP-Code, um die pdf

$html2pdf = new HTML2PDF('P','A4','fr'); 
$html2pdf->WriteHTML($htmlContent); 
$html2pdf->Output($path, 'F'); 
+0

Haben Sie versucht, Rahmenfarbe festzulegen? h. '1px solid black' – Stickers

+0

@sdcr Gleiches Ergebnis. – R3tep

+0

Wie erstellen Sie die PDF aus dem HTML? –

Antwort

6

border-collapse: collapse; soll zusammen zwei gleichen, benachbarten Grenzen verschmelzen. Wenn Sie es in html2pdf verwenden, sollten Sie sowohl die Attribute border-left als auch border-right (wie das Gleiche) formatieren, was beim Zusammenklappen einen einzelnen Rahmen erzeugt. Um dieses CSS defensiv zu schreiben und die border-color Attributvererbung nicht anzunehmen, sollten Sie es technisch bei der Definition von Rahmen angeben, wie border: 1px solid black;

10

Ich fand eine Abhilfe zu erzeugen, wenn ich die CSS-Eigenschaft border-collapse: collapse; durch cellspacing="0" ersetzen das Ergebnis OK aussieht.

<table cellspacing="0" style="width: 100%; border:2px solid;position: relative;"> 
+0

Aber ich verstehe nicht, warum 'border-collapse' nicht funktioniert, weil es in der css [compatibility list] (http://www.studentenwerk-goettingen.de/pdf/help/compatibility.css.2.1. html). – R3tep