
Research
Supply Chain Attack on Axios Pulls Malicious Dependency from npm
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.
mr-pdf-args
Advanced tools
This project is a fork of mr-pdf with the following changes:
--puppeteerArgs to puppeteer.launch() (PR #64)npx mr-pdf --initialDocURLs="https://v1.docusaurus.io/docs/en/installation" --paginationSelector=".docs-prevnext > a.docs-next" --excludeSelectors=".fixedHeaderContainer,footer.nav-footer,#docsNav,nav.onPageNav,a.edit-page-link,div.docs-prevnext" --cssStyle=".navPusher {padding-top: 0;}" --contentSelector="article" --puppeteerArgs="--no-sandbox"
You cant use puppeteer in docker container without --no-sandbox. But mr-pdf does not support passing puppeteerArgs to puppeteer.launch(), now you can generate the PDF files using docker.
In the project you can find a Dockerfile and a docker-compose.yml file to generate the PDF files using docker.
All the content below is from the original project.
Currently, this package is not catching up with docusaurus v2 HTML markup, so command may not find the correct HTML to loop through docs. Please modify the command to find correct HTML markup by yourself.
This is a PDF generator from document website such as docusaurus, vuepress, mkdocs.
For docusaurus v1
npx mr-pdf --initialDocURLs="https://v1.docusaurus.io/docs/en/installation" --paginationSelector=".docs-prevnext > a.docs-next" --excludeSelectors=".fixedHeaderContainer,footer.nav-footer,#docsNav,nav.onPageNav,a.edit-page-link,div.docs-prevnext" --cssStyle=".navPusher {padding-top: 0;}" --contentSelector="article"
| Option | Required | Description |
|---|---|---|
--initialDocURLs | Yes | set URL to start generating PDF from. |
--contentSelector | Yes | used to find the part of main content |
--paginationSelector | Yes | CSS Selector used to find next page to be printed for looping. |
--excludeURLs | No | URLs to be excluded in PDF |
--excludeSelectors | No | exclude selectors from PDF. Separate each selector with comma and no space. But you can use space in each selector. ex: --excludeSelectors=".nav,.next > a" |
--cssStyle | No | CSS style to adjust PDF output ex: --cssStyle="body{padding-top: 0;}" *If you're project owner you can use @media print { } to edit CSS for PDF. |
--outputPDFFilename | No | name of the output PDF file. Default is mr-pdf.pdf |
--pdfMargin | No | set margin around PDF file. Separate each margin with comma and no space. ex: --pdfMargin="10,20,30,40". This sets margin top: 10px, right: 20px, bottom: 30px, left: 40px |
--pdfFormat | No | pdf format ex: --pdfFormat="A3". Please check this link for available formats Puppeteer document |
--disableTOC | No | Optional toggle to show the table of contents or not |
--coverTitle | No | Title for the PDF cover. |
--coverImage | No | <src> Image for PDF cover (does not support SVG) |
--coverSub | No | Subtitle the for PDF cover. Add <br/> tags for multiple lines. |
--headerTemplate | No | HTML template for the print header. Please check this link for details of injecting values Puppeteer document |
--footerTemplate | No | HTML template for the print footer. Please check this link for details of injecting values Puppeteer document |
initialDocURLs: https://docusaurus.io/docs/en/installation
demoPDF: https://github.com/kohheepeace/mr-pdf/blob/master/v1-docusaurus.pdf
command:
npx mr-pdf --initialDocURLs="https://docusaurus.io/docs/en/installation" --paginationSelector=".docs-prevnext > a.docs-next" --excludeSelectors=".fixedHeaderContainer,footer.nav-footer,#docsNav,nav.onPageNav,a.edit-page-link,div.docs-prevnext" --cssStyle=".navPusher {padding-top: 0;}" --pdfMargin="20"

initialDocURLs: https://docusaurus.io/docs
demoPDF: https://github.com/kohheepeace/mr-pdf/blob/master/v2-docusaurus.pdf
command:
npx mr-pdf --initialDocURLs="https://docusaurus.io/docs/" --contentSelector="article" --paginationSelector=".pagination-nav__item--next > a" --excludeSelectors=".margin-vert--xl a" --coverImage="https://docusaurus.io/img/docusaurus.png" --coverTitle="Docusaurus v2"
initialDocURLs:
https://vuepress.vuejs.org/guide/
demoPDF: https://github.com/kohheepeace/mr-pdf/blob/master/v1-vuepress.pdf
command:
npx mr-pdf --initialDocURLs="https://vuepress.vuejs.org/guide/" --contentSelector="main" --paginationSelector=".page-nav .next a" --excludeSelectors="header.navbar,aside.sidebar,footer.page-edit .edit-link,.global-ui,.page-nav" --coverImage="https://vuepress.vuejs.org/hero.png" --coverTitle="VuePress" --coverSub="Vue-powered Static Site Generator"
https://v2.vuepress.vuejs.org/
initialDocURLs:
https://v2.vuepress.vuejs.org/guide/
demoPDF: https://github.com/kohheepeace/mr-pdf/blob/master/v2-vuepress.pdf
command:
npx mr-pdf --initialDocURLs="https://v2.vuepress.vuejs.org/guide/" --contentSelector="main" --paginationSelector=".page-nav .next a" --excludeSelectors="header.navbar,aside.sidebar,footer.page-edit .edit-link,.global-ui,.page-nav" --coverImage="https://v2.vuepress.vuejs.org/images/hero.png" --coverTitle="VuePress" --coverSub="Vue-powered Static Site Generator"
initialDocURLs: https://www.mkdocs.org/
demoPDF: https://github.com/kohheepeace/mr-pdf/blob/master/mkdocs.pdf
command:
npx mr-pdf --initialDocURLs="https://www.mkdocs.org/" --paginationSelector="ul.navbar-nav li.nav-item a[rel~='next']" --excludeSelectors=".navbar.fixed-top,footer,.homepage .container .row .col-md-3,#toc-collapse" --cssStyle=".col-md-9 {flex: 0 0 100%; max-width: 100%;}"
https://squidfunk.github.io/mkdocs-material/
initialDocURLs: https://squidfunk.github.io/mkdocs-material/getting-started/
demoPDF: https://github.com/kohheepeace/mr-pdf/blob/master/material-for-mkdocs.pdf
command:
npx mr-pdf --initialDocURLs="https://squidfunk.github.io/mkdocs-material/getting-started/" --paginationSelector="a.md-footer-nav__link--next" --excludeSelectors="header.md-header,.announce,nav.md-tabs,.md-main__inner .md-sidebar--primary,.md-main__inner .md-sidebar--secondary,footer" --cssStyle=".md-content {max-width: 100%!important;}"
mr-pdf workspage.pdf() from puppter to generate PDF.
This repo's code is coming from https://github.com/KohheePeace/docusaurus-pdf.
Thanks for awesome code made by @maxarndt and @aloisklink.
@bojl approach to make TOC was awesome and breakthrough.
FAQs
Generate pdf from document - Fork of mr-pdf
We found that mr-pdf-args demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.

Research
Malicious versions of the Telnyx Python SDK on PyPI delivered credential-stealing malware via a multi-stage supply chain attack.

Security News
TeamPCP is partnering with ransomware group Vect to turn open source supply chain attacks on tools like Trivy and LiteLLM into large-scale ransomware operations.