Printing a document in JavaScript usually means triggering the browser’s print dialog and controlling what gets printed (a page, a section, or dynamically generated content). JavaScript itself doesn’t “print” directly to printers—it delegates printing to the browser via the Print API.
Here’s a clear guide to doing it properly.
Get the Military Open Source Intelligence (OSINT) Guide
window.print()The simplest way to print a page:
function printPage() {
window.print();
} This opens the browser’s print dialog and prints the entire page.
You can trigger it with a button:
<button > Often you don’t want the whole page printed—just a document, invoice, or report.
<div id="printArea">
<h1>Invoice #123</h1>
<p>Customer: John Doe</p>
<p>Total: ₦50,000</p>
</div>
<button > function printSection() {
const content = document.getElementById("printArea").innerHTML;
const printWindow = window.open("", "", "width=800,height=600");
printWindow.document.write(`
<html>
<head>
<title>Print</title>
</head>
<body>
${content}
</body>
</html>
`);
printWindow.document.close();
printWindow.print();
printWindow.close();
}
To control how printed pages look, use @media print.
@media print {
body {
font-size: 12px;
color: black;
}
.no-print {
display: none;
}
#printArea {
width: 100%;
}
}
<button class="no-print" > Anything with .no-print will be hidden when printing.
Instead of opening a new window, temporarily replace page content:
function printDiv() {
const originalContent = document.body.innerHTML;
const printContent = document.getElementById("printArea").innerHTML;
document.body.innerHTML = printContent;
window.print();
document.body.innerHTML = originalContent;
} ⚠️ Use carefully—this can reset JavaScript state on the page.
Example: generating a report before printing.
function printReport(data) {
let html = `
<h1>Sales Report</h1>
<ul>
`;
data.forEach(item => {
html += `<li>${item.name}: ₦${item.amount}</li>`;
});
html += "</ul>";
const win = window.open("", "", "width=800,height=600");
win.document.write(html);
win.document.close();
win.print();
}
If you want better control (recommended for invoices, receipts), generate a PDF first using libraries like:
Example with jsPDF:
import jsPDF from "jspdf";
const doc = new jsPDF();
doc.text("Hello World", 10, 10);
doc.save("document.pdf");
Then the user prints the downloaded file.
@media print for layout controlwindow.print() → simplest way to print everything@media print → controls layoutLatest tech news and coding tips.
Context poisoning is a technique where an attacker deliberately places misleading, malicious, or irrelevant information into…
React makes building user interfaces easier, but certain errors appear repeatedly, especially when working with…
The C programming language is a foundational, general-purpose computer programming language created by Dennis Ritchie at Bell Labs in 1972. Originally developed to…
What Is Homebrew? Homebrew is a package manager for macOS and Linux that makes it easy to…
JavaScript gives you several ways to iterate over an array. Some are better for simple…
A web server is the software responsible for receiving requests from clients, processing those requests,…