Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to save PDF file from jsPDF on a server in Javascript?

var doc = new jsPDF();
$('#generatereport').click(function() {
   doc.fromHTML($('#lppresults')[0], 15, 15, {
	  width: 170
   }, function() {
	  doc.save('sample-file.pdf');
   });
});
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
        
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.4/jspdf.min.js"></script>
<div class="survey-results" id="lppresults">
    <button id="generatereport">Download Report</button>
    <h1 style="border: solid;">TEST CONTENT</h1><br />
    <h1 style="border: solid;">TEST CONTENT1</h1>
</div>
        
          

I want to save file on the server with JavaScript, but currently I can save this file only on the user's computer.

like image 610
Dilip Shekhawat Avatar asked Aug 10 '18 12:08

Dilip Shekhawat


People also ask

How to Generate PDF from HTML using jsPDF?

var pdf = new jsPDF('p','pt','a4'); pdf. addHTML(document. body,function() { var string = pdf.

How to download HTML content as PDF file using JavaScript?

Generate PDF using JavaScript Specify the content in text() method of jsPDF object. Use the addPage() method to add new page to PDF. Use the save() method to generate and download PDF file.

What is JavaScript jsPDF?

What is jsPDF? jsPDF is an open-source library for generating PDF documents using JavaScript. It provides multiple options to generate PDF files, with custom properties. It has numerous plugins to support various ways of PDF generation.


1 Answers

Instead of doc.save function you have to use doc.output function with type 'blob' as a parameter.

In Javascript part:

var doc = new jsPDF();
$('#generatereport').click(function()
{
    doc.fromHTML(
        $('#lppresults'), 15, 15,
        {width: 170},
        function()
        {
            var blob = doc.output('blob');

            var formData = new FormData();
            formData.append('pdf', blob);

            $.ajax('/upload.php',
            {
                method: 'POST',
                data: formData,
                processData: false,
                contentType: false,
                success: function(data){console.log(data)},
                error: function(data){console.log(data)}
            });
        }
    );
});

Here is the code for upload.php:

<?php
move_uploaded_file(
    $_FILES['pdf']['tmp_name'], 
    $_SERVER['DOCUMENT_ROOT'] . "/uploads/test.pdf"
);
?>
like image 180
Bharata Avatar answered Oct 05 '22 22:10

Bharata