jsonresume / resume-cli

CLI tool to easily setup a new resume 📑
https://jsonresume.org
MIT License
4.56k stars 387 forks source link

Developer docs and how to customize PDF options with JSON Resume CLI and custom themes #617

Open alicescfernandes opened 3 years ago

alicescfernandes commented 3 years ago

Hi! This is not an issue per se, but the docs also don't mention how to develop themes. While trying to debug some rendering issues on puppeteer, i came across a way to customize rendering. By default, resume-cli will render a PDF with in letter format. In Europe we use A4 paper. Also, resume-cli doesn't respect @ media print rules. This can be changed by setting mediaType: 'print' on the pdfRenderOptions

In order to customize the rendering options, you need to export a pdfRenderOptions on the index.js of the theme. I believe that this only works for local themes though

Example code

module.exports = {
    render: render,
    pdfRenderOptions: {
        format: 'A4',
        mediaType: 'print',
        pdfViewport: { width: 1920, height: 1280 },
        margin: {
            top: '0.4in',
            bottom: '0.4in',
            left: '0.4in',
            right: '0.4in',
        },
    },
};

The PDF options that puppeteer accepts on page.pdf are also accepted by the resume-cli. You can check available PDF options here

Is there anyway that we can develop some sort of documentation for theme developers? I would be willing to work on that

asbjornu commented 1 year ago

I was just hit by this void of information and thankfully found this issue giving me a bit more information and context. More elaborate documentation in the PDF + custom theme area would be highly appreciated for sure!

XuluWarrior commented 1 month ago

I've been trying to make my theme more print friendly and came across this issue. Having played with it a bit my observations are