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>
Je souhaite enregistrer le fichier sur le serveur avec JavaScript, mais actuellement je ne peux enregistrer ce fichier que sur l'ordinateur de l'utilisateur.
Au lieu de doc.save
fonction que vous devez utiliser doc.output
fonction de type 'blob'
comme paramètre.
Dans la partie Javascript:
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)}
});
}
);
});
Voici le code pour upload.php
:
<?php
move_uploaded_file(
$_FILES['pdf']['tmp_name'],
$_SERVER['DOCUMENT_ROOT'] . "/uploads/test.pdf"
);
?>