Create pdf from html string. Express middleware.
npm install --save @hyfi06/html2pdfconst express = require("express");
const app = express();
const pdf = require("../index");
app.use(pdf);
app.use("/pdf", async function (req, res) {
try {
await res.html2pdf({
filename: "example.pdf",
htmlString: "<html><body>example</body></html>",
});
} catch (err) {
console.log(err);
}
});
app.listen(3000, function () {
console.log("Listening http://localhost:3000");
});Using express router:
const express = require("express");
const pdf = require("../index");
function pdfApi(app) {
const router = express.Router();
app.use("/pdf");
router.get("/", pdf, async function (req, res) {
try {
await res.html2pdf({
filename: "example.pdf",
htmlString: "<html><body>example</body></html>",
});
} catch (err) {
console.log(err);
}
});
}
module.exports = pdfApi;res.html2pdf({
filename: '',
htmlString: '',
[options],
[launchArgs]
});options<[Object]> Options object which might have the following properties:scale<[number]> Scale of the webpage rendering. Defaults to1. Scale amount must be between 0.1 and 2.displayHeaderFooter<[boolean]> Display header and footer. Defaults tofalse.headerTemplate<[string]> HTML template for the print header. Should be valid HTML markup with following classes used to inject printing values into them:dateformatted print datetitledocument titleurldocument locationpageNumbercurrent page numbertotalPagestotal pages in the document
footerTemplate<[string]> HTML template for the print footer. Should use the same format as theheaderTemplate.printBackground<[boolean]> Print background graphics. Defaults tofalse.landscape<[boolean]> Paper orientation. Defaults tofalse.pageRanges<[string]> Paper ranges to print, e.g., '1-5, 8, 11-13'. Defaults to the empty string, which means print all pages.format<[string]> Paper format. If set, takes priority overwidthorheightoptions. Defaults to 'Letter'.width<[string]|[number]> Paper width, accepts values labeled with units.height<[string]|[number]> Paper height, accepts values labeled with units.margin<[Object]> Paper margins, defaults to none.top<[string]|[number]> Top margin, accepts values labeled with units.right<[string]|[number]> Right margin, accepts values labeled with units.bottom<[string]|[number]> Bottom margin, accepts values labeled with units.left<[string]|[number]> Left margin, accepts values labeled with units.
preferCSSPageSize<[boolean]> Give any CSS@pagesize declared in the page priority over what is declared inwidthandheightorformatoptions. Defaults tofalse, which will scale the content to fit the paper size.
launchArgs<[Array]<[string]> Additional arguments to pass to the browser instance. The list of Chromium flags can be found here, and here is the list of Firefox flags.
Licensed under the MIT License.