print-html-to-pdf
v1.0.8
Published
Print html to pdf using jsPDF and dom-to-image.
Downloads
618
Maintainers
Readme
print-html-to-pdf
Print HTML to pdf using jsPDF & dom-to-image.
Install
npm i print-html-to-pdf
simple example
<button id="print-button">Print</button>
<div id="print-me">
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse sit
amet laoreet urna, eu convallis arcu. Etiam eget risus nec justo ultricies
lobortis. Sed vehicula quam tellus, non porttitor felis pulvinar eget.
Integer ac porttitor diam. Donec ultrices vel ex et scelerisque. Ut
vulputate dolor nulla, vitae viverra tortor eleifend ut. Suspendisse
potenti. In sagittis est non lectus blandit, non tempus erat maximus.
Vestibulum id enim dignissim, viverra purus sed, finibus ex. Praesent quis
consectetur est. Cras ac erat auctor, egestas magna et, gravida tellus.
Phasellus non posuere tortor.
</p>
</div>
import printHtmlToPDF from "print-html-to-pdf";
const printButton = document.getElementById("print-button");
printButton.addEventListener("click", async (event) => {
const node = document.getElementById("print-me");
const pdfOption = {
jsPDF: {
unit: 'px',
format: 'a4',
},
spin: false,
fileName: 'default'
}
};
await printHtmlToPDF.print(node, pdfOption);
});
fit entire content in one page example
<button id="print-button">Print</button>
<div id="print-me">
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse sit
amet laoreet urna, eu convallis arcu. Etiam eget risus nec justo ultricies
lobortis. Sed vehicula quam tellus, non porttitor felis pulvinar eget.
Integer ac porttitor diam. Donec ultrices vel ex et scelerisque. Ut
vulputate dolor nulla, vitae viverra tortor eleifend ut. Suspendisse
potenti. In sagittis est non lectus blandit, non tempus erat maximus.
Vestibulum id enim dignissim, viverra purus sed, finibus ex. Praesent quis
consectetur est. Cras ac erat auctor, egestas magna et, gravida tellus.
Phasellus non posuere tortor.
</p>
</div>
import printHtmlToPDF from "print-html-to-pdf";
const printButton = document.getElementById("print-button");
printButton.addEventListener("click", async (event) => {
const node = document.getElementById("print-me");
const pdfOption = {
jsPDF: {
unit: 'px',
format: 'a4',
},
spin: false,
fileName: 'default',
// If it is true the entire content will fit into one page with margin assigned
// If false and content is bigger than one page than it will be printed to other pages
fitToPage: true // default is false
}
};
await printHtmlToPDF.print(node, pdfOption);
});
set pdf margin example
<button id="print-button">Print</button>
<div id="print-me">
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse sit
amet laoreet urna, eu convallis arcu. Etiam eget risus nec justo ultricies
lobortis. Sed vehicula quam tellus, non porttitor felis pulvinar eget.
Integer ac porttitor diam. Donec ultrices vel ex et scelerisque. Ut
vulputate dolor nulla, vitae viverra tortor eleifend ut. Suspendisse
potenti. In sagittis est non lectus blandit, non tempus erat maximus.
Vestibulum id enim dignissim, viverra purus sed, finibus ex. Praesent quis
consectetur est. Cras ac erat auctor, egestas magna et, gravida tellus.
Phasellus non posuere tortor.
</p>
</div>
import printHtmlToPDF from "print-html-to-pdf";
const printButton = document.getElementById("print-button");
printButton.addEventListener("click", async (event) => {
const node = document.getElementById("print-me");
const pdfOption = {
jsPDF: {
unit: 'px',
format: 'a4',
},
spin: false,
fileName: 'default',
// You can assign margin for the pdf content
margin: {
top: 10,
bottom: 10,
left: 10,
right: 10
},
}
};
await printHtmlToPDF.print(node, pdfOption);
});
ignore dom element example
<button id="print-button">Print</button>
<div id="print-me">
<h2 class="header">Ignore me</h2>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse sit
amet laoreet urna, eu convallis arcu. Etiam eget risus nec justo ultricies
lobortis. Sed vehicula quam tellus, non porttitor felis pulvinar eget.
Integer ac porttitor diam. Donec ultrices vel ex et scelerisque. Ut
vulputate dolor nulla, vitae viverra tortor eleifend ut. Suspendisse
potenti. In sagittis est non lectus blandit, non tempus erat maximus.
Vestibulum id enim dignissim, viverra purus sed, finibus ex. Praesent quis
consectetur est. Cras ac erat auctor, egestas magna et, gravida tellus.
Phasellus non posuere tortor.
</p>
</div>
import printHtmlToPDF from "print-html-to-pdf";
const printButton = document.getElementById("print-button");
printButton.addEventListener("click", async (event) => {
const node = document.getElementById("print-me");
const pdfOption = {
jsPDF: {
unit: 'px',
format: 'a4',
},
spin: false,
fileName: 'default',
// You can hide element which you don't want to be part of pdf
hideDomNodeUsingGivenSelectors: {
id: [],
class: ['header'],
nodes: []
},
}
};
await printHtmlToPDF.print(node, jsPDFOption);
});
- jsPDF
please ref to JSPDF Documentation for more option