Skip to main content

Convert any web page to pdf and save it to Server location - Using AJAX javascript and PHP

 Saving PDF file on local machine is easy - but  if you want to save it on server location - then we have two waays .. 


1. Using JavaScript AJAX call ... 

2. Using PHP  package - wkhtmltopdf

=====================1. JavaScript Way -============================

pdfmaker.php or .html 


<div id="kil">
 
    <!--  your can use URL or path for image -->
          <img id="kil2" src="../folder/vasu.png" >
    <p>

        Kilvish is the Biggest villan of the Earth Planet.

    </p>
</div>


<!-- Include the jsPDF library -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.4.0/jspdf.umd.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.3.2/html2canvas.min.js"></script>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>

<script>

window.jsPDF = window.jspdf.jsPDF;
 

// Create a new jsPDF instance
var doc = new jsPDF();

// Get the HTML element you want to capture
var element = document.getElementById('kil');

// Use html2canvas library to capture the screen data
html2canvas(element).then(function(canvas) {

var img2 = document.getElementById('kil2');

    // Convert canvas to base64 image data
  var imgData = canvas.toDataURL('image/png');

  doc.addImage(img2, 'png', 10, 78, 12, 15);


  // Add the image data to the PDF document
  doc.addImage(imgData, 'PNG', 10, 10, 190, 0);

  $.ajax({
  url: 'upload.php',
  method: 'POST',
  data: {
    pdfData: doc.output('datauristring') // Convert the PDF to a data URI string
  },
  success: function(response) {
    console.log('PDF saved successfully!');
  },
  error: function(xhr, status, error) {
    console.error('Error saving k PDF:', error);
  }
});


})




</script>






on  server side code to accept AJAX reqjest with data - and save it on server location - 


upload.php 

<?php
// Get the PDF data from the POST request
$pdfData = $_POST['pdfData'];


file_put_contents('ciss.pdf', base64_decode(explode(',', $pdfData)[1]));


echo 'PDF saved successfully!';

?>

//------------- finish -----------




========== 2. Using PHP  package - wkhtmltopdf =================

To install the wkhtmltopdf library on your server.


Connect to your server: Use SSH or any other preferred method to log in to your server. run following commands -


sudo apt update


sudo apt-get update

sudo apt-get install -y libxrender1 libxext6 libfontconfig1 libjpeg-turbo8 libx11-6 fontconfig


sudo dpkg -i wkhtmltox_0.12.6-1.bionic_amd64.deb


sudo apt install wkhtmltopdf


wkhtmltopdf --version

create a php file on node server or any server and code like following



<?php

$url = 'https://flowerbet5.com/aaa.php'; // url from which you want to get your content

$savePath = 'aaaaaa.pdf'; // specify path like uploads/demo.pdf


exec("wkhtmltopdf $url $savePath");


if (file_exists($savePath)) {
    echo 'Webpage converted and saved as PDF:
} else {
    echo 'Error converting webpage to PDF.';
}
?>



Comments

Popular posts from this blog

Part 19- Router (Networking Devices)- Computer Networking- CCNA

Hello friends...i am Vasu Birla and today will discuss about the most important Networking Device ..Router.  so let's start... ROUTER Router is a device which connect two or more networks together, which is why router is also known is Inter-networking device also. Inter-networking means two or more networks are connected together with the help of router. one more thing router is just like a computer  but it is designed for routing only, our computer can be router also but that are software router while hardware router which are specialize for routing is more efficient and fast than software router.  There is a Operating System installed on router which get moves data from one network to another network with the help of routing table.  Router does work on Network layer or Layer 3 of the OSI model.  Cisco Router There many companies which manufacture Router but main companies are - Cisco , Juniper , HP, 3com and Nortel  ...

How to deploy NodeJS app on server with Apache2 and acess it with Server IP addresss - Node JS deploy project Live.

     hello friens , This is Vasu Birla , in previous post we have seen the deployement of NodeJS app on AWS instance server instance but AWS server is expensive than other servers . SO today we will use simple Ubuntu server for making Live out Project using Apache2 . At the end you will be abe to access your NodeJS app using server IP address from anywhere  .. 1.  Login to your server using SSH terminal . (in AWS part i already explained how to do this )     -> Open your putty in hostname put your server IP -      login with ssh username ->root and password     (if you dont have root username and pass ask your      provider or reset it from cpanel or hosting panel ) 2. after login - on terminal you can Put your project anywhere.     There are two ways to put your project folder on server location     (i) - > using Github - (very popular and easy to track your everyday code changes t...

GitHub Repo Collaboration Work on single project

 =============================================== To collaborate effectively with your friend on the same project, you should use Git branches to manage different lines of development. Here's a step-by-step procedure you can follow to streamline collaboration: 1. Create Separate Branches for Each Developer Create a New Branch for Your Friend: On your local repository, create a new branch for your friend. For example if your friend name is kilvish , if you want to create a branch named kilvish , you would run: make sure you would be on main branch already   command->  git checkout -b kilvish git push origin kilvish 2. Set Up Your Friend’s Environment( On your Friend's System )  at kilvish side  run ->  Clone the Repository (if not already done): If your friend hasn’t cloned the repository yet, they should do so: command ->  git clone https://github.com/Vasu-Birla/your-repo.git   // your your main clone line  Fetch All Bran...