{"id":16550469,"url":"https://github.com/arc42/PDFminion","last_synced_at":"2025-03-23T13:32:42.210Z","repository":{"id":78576558,"uuid":"363672352","full_name":"arc42/PDFminion","owner":"arc42","description":"An experimental utility to wrap some simple PDF functions, e.g. for stamping page numbers onto existing pdfs, adding header + footer text etc. ","archived":false,"fork":false,"pushed_at":"2025-01-12T16:06:14.000Z","size":18857,"stargazers_count":5,"open_issues_count":12,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-18T20:54:07.104Z","etag":null,"topics":["arc42","cli","documents","golang","handout","pdf"],"latest_commit_sha":null,"homepage":"https://pdfminion.arc42.org/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arc42.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}},"created_at":"2021-05-02T14:36:26.000Z","updated_at":"2025-02-09T01:17:03.000Z","dependencies_parsed_at":"2024-09-09T23:06:34.034Z","dependency_job_id":"f6553221-7dfb-4629-878f-6b030c78a7e7","html_url":"https://github.com/arc42/PDFminion","commit_stats":null,"previous_names":["arc42/pdfminion"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arc42%2FPDFminion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arc42%2FPDFminion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arc42%2FPDFminion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arc42%2FPDFminion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arc42","download_url":"https://codeload.github.com/arc42/PDFminion/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245108315,"owners_count":20562021,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["arc42","cli","documents","golang","handout","pdf"],"created_at":"2024-10-11T19:34:32.294Z","updated_at":"2025-03-23T13:32:37.195Z","avatar_url":"https://github.com/arc42.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ![PDFminion](PDFminion-logo.png)\n\n\nHelper (_minion_) for some mundane tasks with PDF documents, among others:\n\n* add page numbers\n* add header and/or footer text\n* concatenate (combine multiple PDF files into a single file)\n\nIt shall have a (multi-platform) graphical user interface, at least for Mac-OS, Windows and maybe Linux.\n\n\u003e  minion: a servile dependent, follower, or underling.\u003cbr\u003e \n\u003e \"He's one of the boss's minions.\"\u003cbr\u003e\n\u003e From: [Merriam-Webster Dictionary](https://www.merriam-webster.com/dictionary/minion)\n\n## Status\n[![feature-linter](https://github.com/gernotstarke/PDFminion/actions/workflows/feature-linter.yml/badge.svg)](https://github.com/gernotstarke/PDFminion/actions/workflows/feature-linter.yml)\n[![go_test](https://github.com/gernotstarke/PDFminion/actions/workflows/go_test.yml/badge.svg)](https://github.com/gernotstarke/PDFminion/actions/workflows/go_test.yml)\n\n[![Go Report Card](https://goreportcard.com/badge/github.com/gernotstarke/PDFminion)](https://goreportcard.com/report/github.com/gernotstarke/PDFminion)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=gernotstarke_PDFminion\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=gernotstarke_PDFminion)\n[![Maintainability](https://api.codeclimate.com/v1/badges/c481ef8142826f71ff65/maintainability)](https://codeclimate.com/github/gernotstarke/PDFminion/maintainability)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\nI'm currently experimenting with an MVP version of PDFminion, therefore most of the information given here is **NOT** valid any longer.\n## Why PDFminion? \n\n\n## Development\n\n#### The following paragraphs are outdated!!\n\nWe're using BDD (behavior driven development) with Cucumber to specify at least part of the requirements as _scenarios_.\nThese scenarios can be executed, similar to automated unit tests.\n\n* [Godog](https://github.com/cucumber/godog), the official Cucumber tool\n* [Cucumber HTML Reporter](https://www.npmjs.com/package/cucumber-html-reporter)\n* [Cucumber Multi Reporter (more detailed)](https://github.com/wswebcreation/multiple-cucumber-html-reporter)\n\nUse `./create-detailed-cucumber-report.sh` to generate a detailed BDD Cucumber report.\n\n### Deviation from Standard golang practices\nAs of June 2021, the `godog` bdd tool does not respect the standard golang layout practice\nof putting test files next to the tested-code.\nInstead, the step definitions need to be present in the root folder!\n\nTo avoid confusion, I prefixed the step definitions with `stepdef_` - so they are easily recognizable.\nOther (non-bdd/cucumber) automated tests will reside within the appropriate package folders.\n\nSee this [Cucumber/godog issue](https://github.com/cucumber/godog/issues/373).\n\n### Godog\n \n````shell\ngo get github.com/cucumber/godog/cmd/godog@v0.12.0\n````\n### Cucumber HTML Reporter\n\nIt's written in JavaScript and requires `npm` and `node` to be available on your machine.\n\n```shell\nnpm install cucumber-html-reporter --save-dev\n```\n\n### Cucumber Multi Reporter\n\nAgain, JavaScript, see above:\n\n```shell\nnpm install multiple-cucumber-html-reporter --save-dev\n```\n\n\n## Usage of Development Tools\n\nI squeezed the required commands into the files `create-cucumber-report.sh`\nand `create-detailed-cucumber-report.sh`.\n\n### Godog\n\n```shell\ngodog --format cucumber:test-results-results/cucumber-report.json\n```\n\nNotes: \n\n* godog requires features and scenarios to be written in a `features` directory.\n* the `--format` switch can take a file and/or directory name\n\n\n### Cucumber Report\n\n```shell\nnode ./assets/simple-cucumber-report.js\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farc42%2FPDFminion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farc42%2FPDFminion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farc42%2FPDFminion/lists"}