generate-pdf-from-react-html
With generate-pdf-from-react-html you can include:
Generated with generate-pdf-from-react-html:
Demo
milen-minchev.github.io/generate-pdf-from-react-html-demo
Installation
Use the package manager npm to install generate-pdf-from-react-html.
npm i generate-pdf-from-react-html
Usage
import { pdfFromReact } from "generate-pdf-from-react-html";
pdfFromReact(element, name, orientation resize, debug);
width: 600px;
and min-height: 840px
for portrait and to width: 841px;
and min-height: 595px
for landscape orientation of desired element or set resize
to true
and will be resized automatically.
Correct:
#CSS
//portrait
.element-for-print {
width: 600px;
min-height: 840px;
etc...
}
#SCSS
//landscape
.element-for-print {
width: 841px;
min-height: 595px;
etc...
}
Wrong:
#CSS
//portrait
.parent-element .element-for-print {
width: 600px;
min-height: 840px;
etc...
}
#SCSS
//landscape
.parent-element{
.element-for-print {
width: 841px;
min-height: 595px;
etc...
}
}
Example
import { pdfFromReact } from "generate-pdf-from-react-html";
<div>
<h1>Example page</h1>
<div className="element-to-print">
<p>
Lorem ipsum, dolor sit amet consectetur adipisicing elit. Iste quia dicta
itaque sunt fuga, illo ad eaque ea commodi temporibus perferendis
provident doloribus non iusto asperiores excepturi autem facere qui!
</p>
</div>
<button
onClick={() =>
pdfFromReact(".element-to-print", "My-file", "p", true, false)
}
></button>
</div>;
Options
Required
-
element : (string)
- Target HTML element based ondocument.querySelector(CSS selectors)
like".element-for-print"
,"#element-for-print"
etc.- View all selectors CSS selectors
-
name : (string)
- Choose name for the file -
orientation : (string)
- Choose orientation portrait("p")
or landscape("l")
false
Optional, default is -
resize : (boolean)
- If set totrue
sets fixed size of A4 (width and min-height) on generate.❗ Targeted element must be responsive for best result❗ -
debug : (boolean)
- If set totrue
it's open generated PDF in new window for preview without automatically downloading it.