Home > jQuery > How to Print a Page using jQuery?

How to Print a Page using jQuery?

In today’s digital era, the need to print web pages might seem less prevalent. But it’s still a vital function for various purposes like generating physical copies of documents, receipts, or reports. jQuery, with its simplicity and versatility, offers an efficient solution for enabling printing functionality on web pages.

In this comprehensive guide, we’ll delve into how to print a page using jQuery to facilitate seamless printing experiences for your users.

Why Use jQuery for Printing?

jQuery simplifies the process of enabling printing on web pages, providing a consistent solution across different browsers. While modern browsers do offer native printing capabilities, jQuery enhances flexibility and customization.

With jQuery, you can easily trigger the print dialog without users having to navigate through browser settings, ensuring a smoother user experience.

Supported Browsers:

  • Google Chrome
  • Internet Explorer
  • Firefox
  • Opera
  • Safari

Print a Page with jQuery

Before diving into the implementation, ensure you have jQuery integrated into your project. You can include jQuery by either downloading the library and linking it in your HTML file or utilizing a CDN for quick integration. Here’s an example of including jQuery via CDN.

<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

Once jQuery is included, you’re ready to start implementing printing functionality on your web page.

Implementing Print Functionality

To initiate printing of the webpage, create a button or link that triggers the print dialog when clicked. Let’s create a button using HTML.

<button id="printBtn">Print This Page</button>

Now, we will use the window.print() method to print a page with jQuery. Let’s add the jQuery code to handle the click event of this button and trigger the print dialog.

$(document).ready(function(){
    $('#printBtn').click(function(){
        window.print();
    });
});

In this code snippet, we’re utilizing jQuery to target the button with the ID printBtn. Upon clicking this button, the window.print() function is invoked, which opens the print dialog, allowing users to print the current web page.

Customizing Print Styles

Customizing the print layout is crucial for enhancing readability and excluding unnecessary elements. You can achieve this by applying custom print styles using CSS. Let’s see an example.

@media print {
    /* Hide elements not intended for printing */
    .no-print {
        display: none;
    }
}

In this CSS snippet, we’re using the @media print query to specify styles applicable only during printing. The .no-print class can be applied to any element you want to exclude from the printed page.

Handling Print Events in jQuery

You may need to execute certain actions before or after the print dialog appears or when the user finishes printing. jQuery provides events for these scenarios. Here’s how to handle them.

$(window).on('beforeprint', function(){
    // Actions to perform before printing
});

$(window).on('afterprint', function(){
    // Actions to perform after printing
});

These event handlers enable you to execute JavaScript code before the print dialog appears (beforeprint) or after the user finishes printing (afterprint).

Complete Code Together

Here’s the complete code example for handling print events using jQuery and printing a page on click event.

<html>
	<head>
  		<title>Print a Page with jQuery</title>
        <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
        
  		<style>
        	@media print {
                /* Hide elements not intended for printing */
                .no-print {
                    display: none;
                }
            }
  		</style>
  	</head>
    
   	<body>
    	<p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>
    	<button id="printBtn">Print This Page</button>
      
      	<script>
        	$(document).ready(function(){
            	// Click event handler for the print button
              	$('#printBtn').click(function(){
                	window.print();
              	});

              	// Event handler for beforeprint event
              	$(window).on('beforeprint', function(){
                	// Actions to perform before printing
                  	console.log("Preparing for printing...");
              	});

              	// Event handler for afterprint event
              	$(window).on('afterprint', function(){
                	// Actions to perform after printing
                  	console.log("Printing completed!");
              	});
          	});  
      	</script>
    </body>
</html>

In this above code, We’ve attached a click event handler to the button with the ID printBtn, which triggers the print dialog when clicked. Additionally, we’ve implemented event handlers for the beforeprint and afterprint events using jQuery’s $(window).on() method.

Inside the beforeprint event handler, you can define actions to be performed before the print dialog appears, such as preparing the content for printing. Similarly, inside the afterprint event handler, you can define actions to be performed after the user finishes printing, such as updating the UI or displaying a confirmation message.

Conclusion

So in this tutorial, you learned about how you can use the window’s print() method to print a page using jQuery event handling. You also learned about how to customize the print style and add before/after the print event.

Printing web pages using jQuery offers a user-friendly and customizable solution. By following the steps outlined in this guide, you can seamlessly implement printing functionality on your website. Whether you’re generating printable versions of articles, reports, or receipts, jQuery simplifies the process and enhances the overall user experience.

FAQs

What is jQuery printing functionality?

jQuery printing functionality allows web developers to enable seamless printing of web pages directly from the browser using jQuery’s simplified syntax and event handling capabilities.

Why use jQuery for printing web pages?

jQuery simplifies the process of enabling printing functionality by providing a consistent solution across different browsers and offering customization options, enhancing the user experience.

How can I trigger printing using jQuery?

To trigger printing using jQuery, simply attach a click event handler to a button or link on your web page, and within the handler function, invoke the window.print() method, which opens the print dialog.

Can I customize the print layout with jQuery?

Yes, jQuery allows for customization of the print layout by applying custom print styles using CSS. You can hide elements not intended for printing or modify the styling to optimize readability for printed pages.

What are beforeprint and afterprint events?

jQuery provides events like beforeprint and afterprint to handle tasks before and after the printing process. These events allow developers to execute specific actions, such as preparing content or updating UI elements, enhancing the printing experience.

Photo of author

About Aman Mehra

Hey there! I'm Aman Mehra, a full-stack developer with over six years of hands-on experience in the industry. I've dedicated myself to mastering the ins and outs of PHP, WordPress, ReactJS, NodeJS, and AWS, so you can trust me to handle your web development needs with expertise and finesse. In 2021, I decided to share my knowledge and insights with the world by starting this blog. It's been an incredible journey so far, and I've had the opportunity to learn and grow alongside my readers. Whether you're a seasoned developer or just dipping your toes into the world of web development, I'm here to provide valuable content and solutions to help you succeed. So, stick around, explore the blog, and feel free to reach out if you have any questions or suggestions. Together, let's navigate the exciting world of web development!

Leave a Comment