Skip to content

Instantly share code, notes, and snippets.

@moshen
Created June 2, 2023 20:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save moshen/1d84a2d7b250c2577c018d9243b318c0 to your computer and use it in GitHub Desktop.
Save moshen/1d84a2d7b250c2577c018d9243b318c0 to your computer and use it in GitHub Desktop.
Short script with description for making gigantic pdfs for testing
/**
* Make some big docs to make big pdfs
*
* node make_giant_doc.js > giant.html
* wkhtmltopdf giant.html giant.pdf
*/
const NUM_PAGES = 15000;
const LOREM = `
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam placerat nibh eget
neque dapibus tempus. In tortor diam, mollis eu sollicitudin id, finibus a ex.
Proin pharetra, orci in porttitor ultrices, lorem turpis dapibus risus, vitae
sagittis justo lorem ac mi. Sed ultrices rutrum mi non auctor. Praesent
tristique sapien id lectus pellentesque faucibus. Suspendisse mollis tempus
nulla, a porttitor leo vestibulum ultrices. Nunc aliquam ex quis leo sodales,
non ultrices nisl auctor. Sed tincidunt semper venenatis. Phasellus augue
ligula, tempor quis felis ut, lacinia cursus metus. Pellentesque arcu eros,
congue sit amet elementum eget, sagittis sed tellus. Vestibulum vitae finibus
arcu. Donec sed bibendum orci, nec convallis turpis. Ut id ligula quis elit
tincidunt elementum sit amet non neque. Nam efficitur feugiat lorem, ut
sollicitudin diam tristique a. Aliquam ullamcorper vestibulum magna vel
laoreet.
Sed libero purus, blandit sed blandit vitae, mollis vitae felis. Nam in mauris
at orci ullamcorper tempor eget ut libero. Integer iaculis venenatis rhoncus. Ut
elementum iaculis velit eget lacinia. Etiam iaculis nisi sodales varius maximus.
Vestibulum a dictum diam, a interdum dolor. In semper iaculis urna vitae
venenatis. Proin eget imperdiet sem. Curabitur dolor justo, sollicitudin nec
lectus quis, sollicitudin pretium ante. Aenean sagittis eros orci, ut malesuada
mauris cursus eu. Interdum et malesuada fames ac ante ipsum primis in faucibus.
Praesent sed aliquet sapien, in molestie velit.
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia
curae; Proin feugiat pulvinar massa, ut dictum leo commodo sed. Etiam et est
orci. Donec tortor odio, tempor ac enim at, vulputate malesuada dui. Suspendisse
imperdiet sem et elit fringilla, ut hendrerit lacus tempor. Etiam ullamcorper
ornare magna vel pharetra. Suspendisse aliquam gravida libero, vitae tempor
augue scelerisque non. Fusce vestibulum, ante quis feugiat commodo, massa ex
auctor arcu, a feugiat turpis justo vitae nulla. Nunc vel nibh leo. Nunc
placerat quis ligula et dignissim. Quisque efficitur est a aliquet feugiat. In
hac habitasse platea dictumst. Donec rhoncus, quam sit amet fermentum lobortis,
purus leo rhoncus ipsum, ut euismod nunc velit non dolor.
Cras hendrerit placerat orci sit amet gravida. Sed at tortor auctor, ultricies
massa in, mattis ligula. Suspendisse suscipit tincidunt fermentum. Aliquam quis
lectus vel justo commodo vulputate vel vulputate nisl. Nam convallis faucibus
dignissim. In feugiat lectus ut justo scelerisque, quis ullamcorper elit
ultrices. Curabitur lobortis, lectus nec dapibus efficitur, dolor lacus mollis
mauris, eget congue risus ex eu massa. Donec varius cursus molestie. Proin et
quam feugiat, ornare ex nec, laoreet massa. Cras malesuada lacinia tincidunt.
Suspendisse mattis pellentesque rhoncus. Etiam egestas, justo sit amet laoreet
luctus, elit nisi consequat enim, vitae fermentum justo sem et orci.
Etiam varius lorem nisl. Vestibulum dictum diam in magna efficitur elementum. Ut
tellus turpis, pharetra quis urna sed, placerat vestibulum eros. Aenean id
luctus leo. Nulla facilisi. Cras non sem vitae erat cursus placerat quis vel
arcu. Fusce ultricies ex in ligula ornare, et convallis purus fringilla. Aenean
maximus ipsum non arcu mattis, a interdum ipsum auctor. Mauris magna est, porta
at rutrum sed, ultrices quis magna. Vestibulum eget dictum nunc. Sed eu
facilisis est. Cras a nulla posuere, bibendum nulla id, volutpat nisl.
Vestibulum tempor, massa molestie viverra facilisis, sapien odio tincidunt
lacus, et scelerisque tellus mi vel libero. Praesent imperdiet purus odio, et
gravida diam pharetra in. Quisque semper finibus ligula, vel laoreet elit
posuere et.
`;
async function main() {
console.log(`
<html>
<head>
<style>
.page {
page-break-after: always;
white-space: pre-wrap;
}
</style>
</head>
<body>`);
for (let i = 0; i < NUM_PAGES; i++) {
console.log(`
<div class="page">
${LOREM}
</div>`);
}
console.log(`
</body>
</html>`);
}
main()
.catch(err => console.error(err));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment