tôi đã cùng một vấn đề 4 ngày trở lại và đã có thể sửa chữa nó .. Tôi đã cung cấp mẫu mã dưới đây để bạn có thể hiểu ..
Tôi giả định rằng yêu cầu là để xuất khẩu một bảng html (nêu bên dưới là bảng 1, có 3 hàng trở lên) thành định dạng PDF. Chúng tôi sẽ thiết lập chiều rộng ô/cột và các loại phông chữ và phông chữ bổ sung cho 3 hàng đó ..
Hàng đầu tiên sẽ là Đầu trang - đậm được áp dụng .. Tôi đã áp dụng các kiểu khác nhau cho hàng thứ 2 và thứ 3 cho các phong cách hiểu biết có sẵn .. Nếu bạn muốn áp dụng chiều rộng cột khác nhau, cho mỗi cột - bạn cũng có thể làm điều đó ..
Hy vọng mã sau có thể đọc được và tự giải thích. Hãy cho tôi biết nếu bạn có bất kỳ câu hỏi nào
$(document).on("click", "#btnExportToPDF", function() {
var table1 =
tableToJson($('#table1').get(0)),
cellWidth = 35,
rowCount = 0,
cellContents,
leftMargin = 2,
topMargin = 12,
topMarginTable = 55,
headerRowHeight = 13,
rowHeight = 9,
l = {
orientation: 'l',
unit: 'mm',
format: 'a3',
compress: true,
fontSize: 8,
lineHeight: 1,
autoSize: false,
printHeaders: true
};
var doc = new jsPDF(l, '', '', '');
doc.setProperties({
title: 'Test PDF Document',
subject: 'This is the subject',
author: 'author',
keywords: 'generated, javascript, web 2.0, ajax',
creator: 'author'
});
doc.cellInitialize();
$.each(table1, function (i, row)
{
rowCount++;
$.each(row, function (j, cellContent) {
if (rowCount == 1) {
doc.margins = 1;
doc.setFont("helvetica");
doc.setFontType("bold");
doc.setFontSize(9);
doc.cell(leftMargin, topMargin, cellWidth, headerRowHeight, cellContent, i)
}
else if (rowCount == 2) {
doc.margins = 1;
doc.setFont("times ");
doc.setFontType("italic"); // or for normal font type use ------ doc.setFontType("normal");
doc.setFontSize(8);
doc.cell(leftMargin, topMargin, cellWidth, rowHeight, cellContent, i);
}
else {
doc.margins = 1;
doc.setFont("courier ");
doc.setFontType("bolditalic ");
doc.setFontSize(6.5);
doc.cell(leftMargin, topMargin, cellWidth, rowHeight, cellContent, i); // 1st=left margin 2nd parameter=top margin, 3rd=row cell width 4th=Row height
}
})
})
doc.save('sample Report.pdf'); })
function tableToJson(table) {
var data = [];
// first row needs to be headers
var headers = [];
for (var i=0; i<table.rows[0].cells.length; i++) {
headers[i] = table.rows[0].cells[i].innerHTML.toLowerCase().replace(/ /gi,'');
}
// go through cells
for (var i=1; i<table.rows.length; i++) {
var tableRow = table.rows[i];
var rowData = {};
for (var j=0; j<tableRow.cells.length; j++) {
rowData[ headers[j] ] = tableRow.cells[j].innerHTML;
}
data.push(rowData);
}
return data; }
tuyệt vời! Cảm ơn! – gco
Bạn được chào đón gco. Tôi vui mừng vì nó đã giúp bạn :) và cảm ơn bạn đã bỏ phiếu – Vinu
@Vinu Phiên bản jsPDF nào sẽ cho phép tất cả các tùy chọn đó? Cái tôi đang sử dụng chỉ cho phép 'chức năng jsPDF (định hướng, đơn vị, định dạng, nénPdf) {/ ** Định hướng chuỗi, đơn vị chuỗi, định dạng chuỗi, Boolean nén * /' –