{"id":24532942,"url":"https://github.com/mcecode/pdf-made-easy","last_synced_at":"2026-02-06T03:31:34.370Z","repository":{"id":65500250,"uuid":"593502191","full_name":"mcecode/pdf-made-easy","owner":"mcecode","description":"A CLI application for building and developing PDF documents.","archived":false,"fork":false,"pushed_at":"2026-01-02T20:07:31.000Z","size":1647,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-09T09:28:49.682Z","etag":null,"topics":["cli","document","html","liquid","pdf","puppeteer","template","yaml"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/pdf-made-easy","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mcecode.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-01-26T06:39:45.000Z","updated_at":"2026-01-02T20:07:35.000Z","dependencies_parsed_at":"2025-09-25T06:02:20.765Z","dependency_job_id":"00a92e3b-27e2-437b-a754-397a37ac7532","html_url":"https://github.com/mcecode/pdf-made-easy","commit_stats":{"total_commits":9,"total_committers":1,"mean_commits":9.0,"dds":0.0,"last_synced_commit":"0f62c5da9374ec3b03bccf874588b0f78b98a8dd"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/mcecode/pdf-made-easy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcecode%2Fpdf-made-easy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcecode%2Fpdf-made-easy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcecode%2Fpdf-made-easy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcecode%2Fpdf-made-easy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mcecode","download_url":"https://codeload.github.com/mcecode/pdf-made-easy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcecode%2Fpdf-made-easy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29148130,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-06T02:39:25.012Z","status":"ssl_error","status_checked_at":"2026-02-06T02:37:22.784Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","document","html","liquid","pdf","puppeteer","template","yaml"],"created_at":"2025-01-22T10:19:00.464Z","updated_at":"2026-02-06T03:31:34.275Z","avatar_url":"https://github.com/mcecode.png","language":"JavaScript","readme":"# PDF Made Easy\n\nPDF Made Easy (PME) is a CLI application for building and developing PDF\ndocuments.\n\n![PME demo showing how the auto refresh feature works as the output PDF refreshes when either the template or data file is updated](assets/demo.webp)\n\n## What this is\n\n- A CLI you use to design and generate PDFs on your local machine using\n  [Liquid](https://shopify.github.io/liquid) templates and\n  [YAML](https://learnxinyminutes.com/yaml) data files. Under the hood, it uses\n  [Puppeteer](https://pptr.dev) to create the PDFs.\n- Something I created because I wanted to generate PDFs using the familiar HTML\n  and CSS that I know.\n\n## What this is NOT\n\n- A library you use to incorporate into your scripts.\n- Something you use on your server to generate PDFs on the fly. It's not very\n  efficient to use a whole browser instance just to do that, using something\n  like [PDFKit](https://pdfkit.org),\n  [@pdfme/pdf-lib](https://github.com/pdfme/pdfme/tree/main/packages/pdf-lib),\n  or [MuhammaraJS](https://github.com/julianhille/MuhammaraJS) would probably be\n  better.\n\n## Requirements\n\n- [Node.js](https://nodejs.org), preferably\n  [the latest Maintenance release or later](https://nodejs.org/about/previous-releases).\n\n## Installation\n\n### Global\n\n```console\nnpm install --global pdf-made-easy\n```\n\n### Local\n\n```console\nnpm install pdf-made-easy\n```\n\n## Usage\n\n```console\npme\npme [options]\npme \u003ccommand\u003e [options]\n\nCommands:\n  pme        Same as 'dev' command                                     [default]\n  pme dev    Watch data and template files and output PDF on change\n  pme build  Output PDF using data and template files\n\nOptions:\n  -h, --help      Show help                                            [boolean]\n  -v, --version   Show version number                                  [boolean]\n  -c, --config    Path to JavaScript config file                        [string]\n  -d, --data      Path to YAML data file          [string] [default: \"data.yml\"]\n  -o, --output    Path to PDF output file       [string] [default: \"output.pdf\"]\n  -t, --template  Path to Liquid template file\n                                           [string] [default: \"template.liquid\"]\n\nExamples:\n  pme\n  pme -d info.yml\n  pme dev -t ./templates/default.liquid\n  pme build -o /home/user/document.pdf\n  pme -d info.yml -t ./templates/default.liquid -o /home/user/document.pdf\n```\n\n### Passing options to Puppeteer and LiquidJS\n\nYou may want to specify options to change the default behavior of the libraries\nthat this CLI uses. For that, you can create a JavaScript config file that\nexports a config object at the current working directory where you will invoke\n`pme` or point to one using the `--config` or `-c` flag. By default, `pme` will\ntry to find `pme.config.js`, `pme.config.mjs`, and `pme.config.cjs` in the\ncurrent working directory, in that order.\n\nLet's say you don't want the Chrome instance Puppeteer will use to be sandboxed,\nyou want to be notified when you don't set variables in your YAML config file\nthat your Liquid template expects, and you want your PDF to be in landscape. You\ncan create a `pme.config.mjs` with the following contents:\n\n```js\nimport { defineConfig } from \"pdf-made-easy\";\n\nexport default defineConfig({\n\tlaunchOptions: { args: [\"--no-sandbox\"] },\n\tliquidOptions: { strictVariables: true },\n\tpdfOptions: { landscape: true },\n});\n```\n\n`defineConfig` is a helper to give you autocompletion and to check that you've\nprovided the correct config keys. All of these settings are optional, you can\nprovide some, a few, or none of them. Below are links to further documentation\nfor what other options you can set:\n\n- [`launchOptions`](https://pptr.dev/api/puppeteer.launchoptions)\n- [`liquidOptions`](https://liquidjs.com/api/interfaces/LiquidOptions.html)\n- [`pdfOptions`](https://pptr.dev/api/puppeteer.pdfoptions)\n\n**Note:** For `launchOptions`, `handleSIGHUP`, `handleSIGINT`, and\n`handleSIGTERM` are always set to `false` since `pme` handles those signals\nitself. As for `pdfOptions`, `path` is always set to what is passed to the\n`--output` or `-o` flag.\n\n## License\n\nCopyright 2023-present Matthew Espino\n\nThis project is licensed under the [Apache 2.0 license](LICENSE).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcecode%2Fpdf-made-easy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmcecode%2Fpdf-made-easy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcecode%2Fpdf-made-easy/lists"}