hier ist, was ich versuche zu erreichen, ich versuche, eine HTML-Tabelle, die HTML-Tabelle enthalten zu drucken auch meine Details (ich habe Header und Detail) Daten. Aber wenn ich jspdf.js verwende, um meine HTML-Tabelle zu drucken, ist die Tabelle in der PDF-Datei fehlerhaft, sieht nicht wie HTML aus, die Schleifen-Tabelle in der Haupttabelle ist chaotisch, sieht so aus, als würde sie die Insider-Tabelle nicht erstellen. Wie drucke ich die Tabelle in der Tabelle richtig?Wie drucke ich richtig HTML-Tabelle PDF mit jspdf.js?
hier ist mein HTML aussehen
index.html
<div id="customers">
<div class="table-responsive">
<table id="tbl" class="table table-hover">
<thead>
<tr>
<th style="background-color: #928989; color; white;">No BPS</th>
<th style="background-color: #928989; color; white;">Tanggal BPS</th>
<th style="background-color: #928989; color; white;">Tanggal Input</th>
<th style="background-color: #928989; color; white;">Status</th>
</tr>
</thead>
<tbody>
<tr ng-repeat-start="listLaporanRetur in listLaporanReturs | limitTo:quantity">
<td class="btn btn-mini btn-primary pull-center">BPXXXXXXX</td>
<td>2016-06-22</td>
<td>2016-06-22</td>
<td>SENT</td>
</tr>
<tr ng-repeat-end="">
<td colspan="10" style="padding: 0">
<div>
<table class="table table-bordered table-hover">
<tr>
<td style="background-color: #80A3C1;">Kode Barang</td>
<td style="background-color: #80A3C1;">Qty</td>
<td style="background-color: #80A3C1;">Merk</td>
<td style="background-color: #80A3C1;">Hasil</td>
</tr>
<tr ng-repeat-start="details in listLaporanRetur.returDetailList">
<td>STUFFID1</td>
<td>10</td>
<td>APPLE</td>
<td>BOOM</td>
</tr>
<tr>
<td>STUFFID2</td>
<td>40</td>
<td>SONY</td>
<td>BREAK</td>
</tr>
<tr ng-repeat-end=""></tr>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<button onclick="javascript:demoFromHTML();">PDF</button>
dann hier ist mein Javascript
function demoFromHTML() {
var pdf = new jsPDF('p', 'pt', 'letter');
// source can be HTML-formatted string, or a reference
// to an actual DOM element from which the text will be scraped.
source = $('#customers')[0];
// we support special element handlers. Register them with jQuery-style
// ID selector for either ID or node name. ("#iAmID", "div", "span" etc.)
// There is no support for any other type of selectors
// (class, of compound) at this time.
specialElementHandlers = {
// element with id of "bypass" - jQuery style selector
'#bypassme': function (element, renderer) {
// true = "handled elsewhere, bypass text extraction"
return true
}
};
margins = {
top: 80,
bottom: 60,
left: 10,
width: 700
};
// all coords and widths are in jsPDF instance's declared units
// 'inches' in this case
pdf.fromHTML(
source, // HTML string or DOM elem ref.
margins.left, // x coord
margins.top, { // y coord
'width': margins.width, // max width of content on PDF
'elementHandlers': specialElementHandlers
},
function (dispose) {
// dispose: object with X, Y of the last line add to the PDF
// this allow the insertion of new lines after html
pdf.save('Test.pdf');
}, margins);
}
hier ist mein jsfiddle http://jsfiddle.net/ugD5L/126/
, wie die Tabelle drucken richtig, damit ich nicht chaotisch Tisch in der PDF bekommen? es ist besser, wenn Sie mir mit jsfiddle Beispiel zeigen können
Ihr Text auf der äußersten linken Seite Ihres file.Write CSS ausrichten in-line.First Ihre PDF-Ansicht überprüfen, bevor es als pdf.Put alle dynamischen Daten auf der Oberseite des HTML und Nutzung Drucken Schleife wie foreach vor
@Bugfixer JsPDF unterstützt keines der Dinge, die Sie gerade erwähnt haben. TCPDF ist eine serverseitige Option im Vergleich zu JsPDF, das PDF auf der Clientseite mit HTML5 generiert. – kazenorin
diese Frage wurde gestellt und beantwortet, bevor http://stackoverflow.com/questions/19807870/how-to-export-the-html-tables-data-into-pdf-using-jspdf –
Antwort
Wie erwähnt in der Antwort der geschachtelten Tabelle wird JsPDF bisher nicht unterstützt, aber wenn Sie Ihr HTML-Bit (wenn möglich) ändern können, dann können Sie Ihr Problem lösen.
Demo
Quelle
2016-06-27 03:11:01 Neha
wenn down vote lassen Sie uns wissen, warum ... es ist nur ein Vorschlag, um das Problem zu lösen wenn es nicht wie pro Anforderung ist. einfach Kommentar fallen lassen. – Neha
nein ist es mir uns nicht überstimmen, bekommen meine Frage zu überstimmen, so weit Ihre Antwort ist die beste, aber ich muss zuerst an einer anderen Antwort suchen. Kazenorin haben alternative Möglichkeit, lass es mich zuerst überprüfen –
Verwandte Themen