How to Create one pdf file of dynamically generate Multiple Pages using JSPDF in Php CodeIgniter

Viewed 48

I am Using Php Codeigniter Where generate Single pdf of multiple pages

1 Answers

After alot of Search on multiple pages on single pdf using php codeigniter:-

Here is the simple solution of my this problem in php codeigniter.

1-Add Script after <head> tag:

  <script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.min.js"</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.5.3/jspdf.min.js"></script>

2-Add <a href></a> tag call the function > generatePdf

<a href="javascript:generatePDF()">Dowload PDF</a></div> 

3-set div with dynamic id's

<div id="html2pdf_<?php echo  $reg['id']; ?>">

4-start a <script> define fuction generatePdf

<script>   
function generatePDF() {}
</script>

5-create doc new jspdf

var doc = new jsPDF();

6-define page height and x,y coordinates

pageHeight= doc.internal.pageSize.height;
        x=15; y = 0 ;

7-call the div tag by user id dynamically where instruction populate from db :

<?php foreach($registration as $reg){?>
doc.fromHTML(document.getElementById("html2pdf_<?php echo  $reg['id']; ?>"),x,y,{
'width': 170
 }),
<?php } ?>

8-Save the doc in Download Folder

doc.save("CallLetters.pdf"); 

9- Now add the multiple pages in one pdf:

if (y >= pageHeight)
{
doc.addPage();
}

10- Complete Code:

<script>   
function generatePDF() {
        var doc = new jsPDF();
        pageHeight= doc.internal.pageSize.height;
        x=15; y = 0 ;
<?php foreach($registration as $reg){?>
if (y >= pageHeight)
{
doc.addPage();
y = 0 
doc.fromHTML(document.getElementById("html2pdf_<?php echo  $reg['id']; ?>"),x,y,{
'width': 170
 }),
y=500;
}
else{
doc.fromHTML(document.getElementById("html2pdf_<?php echo  $reg['id']; ?>"),x,y,{
'width': 170
}),
y=500;
}<?php } ?>
doc.save("CallLetters.pdf");         
}
</script>  
Related