{"id":23521233,"url":"https://github.com/leplusorg/docker-pdf","last_synced_at":"2025-08-07T22:37:25.682Z","repository":{"id":43091809,"uuid":"225702329","full_name":"leplusorg/docker-pdf","owner":"leplusorg","description":"Docker container to run PDF manipulation utitilies (pdftk, ghostscript...).","archived":false,"fork":false,"pushed_at":"2025-04-14T23:18:33.000Z","size":434,"stargazers_count":6,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-14T23:31:46.118Z","etag":null,"topics":["docker","docker-container","docker-image","dockerfile","ghostscript","pdf","pdf-manipulation-utitilies","pdftk"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/leplusorg/pdf","language":"Dockerfile","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/leplusorg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-12-03T19:47:44.000Z","updated_at":"2025-04-14T23:18:37.000Z","dependencies_parsed_at":"2024-01-19T02:47:11.065Z","dependency_job_id":"753cda45-5b1d-4f12-97b5-bf6149b1daaf","html_url":"https://github.com/leplusorg/docker-pdf","commit_stats":{"total_commits":74,"total_committers":3,"mean_commits":"24.666666666666668","dds":0.1216216216216216,"last_synced_commit":"f9f4eea93a1b1667906501a74ef5546ea8b7df21"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leplusorg%2Fdocker-pdf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leplusorg%2Fdocker-pdf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leplusorg%2Fdocker-pdf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leplusorg%2Fdocker-pdf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leplusorg","download_url":"https://codeload.github.com/leplusorg/docker-pdf/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249783421,"owners_count":21325113,"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":["docker","docker-container","docker-image","dockerfile","ghostscript","pdf","pdf-manipulation-utitilies","pdftk"],"created_at":"2024-12-25T17:11:28.418Z","updated_at":"2025-08-07T22:37:25.674Z","avatar_url":"https://github.com/leplusorg.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PDF\n\nMulti-platform Docker container with utilities to process PDF (`pdftk`, `ghostscript`, `ocrmypdf`, `pdfgrep`, `qpdf`...).\n\n[![Dockerfile](https://img.shields.io/badge/GitHub-Dockerfile-blue)](pdf/Dockerfile)\n[![Docker Build](https://github.com/leplusorg/docker-pdf/workflows/Docker/badge.svg)](https://github.com/leplusorg/docker-pdf/actions?query=workflow:\"Docker\")\n[![Docker Stars](https://img.shields.io/docker/stars/leplusorg/pdf)](https://hub.docker.com/r/leplusorg/pdf)\n[![Docker Pulls](https://img.shields.io/docker/pulls/leplusorg/pdf)](https://hub.docker.com/r/leplusorg/pdf)\n[![Docker Version](https://img.shields.io/docker/v/leplusorg/pdf?sort=semver)](https://hub.docker.com/r/leplusorg/pdf)\n[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/10072/badge)](https://bestpractices.coreinfrastructure.org/projects/10072)\n[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/leplusorg/docker-pdf/badge)](https://securityscorecards.dev/viewer/?uri=github.com/leplusorg/docker-pdf)\n\n## Example not using the filesystem\n\nAssuming that you have a PDF file `foo.pdf` and you want to extract the first page to `bar.pdf`:\n\n**Mac/Linux**\n\n```bash\ncat foo.pdf | docker run --rm -i --net=none leplusorg/pdf pdftk - cat output - \u003e bar.pdf\n```\n\n**Windows**\n\n```batch\ntype foo.pdf | docker run --rm -i --net=none leplusorg/pdf pdftk - cat output - \u003e bar.pdf\n```\n\n## Example requiring the filesystem\n\nAssuming that you have two PDF files `foo.pdf` and `bar.pdf` in your current working directory and you want to join them into a single `foobar.pdf`:\n\n**Mac/Linux**\n\n```bash\ndocker run --rm -t --user=\"$(id -u):$(id -g)\" --net=none -v \"$(pwd):/tmp\" leplusorg/pdf pdftk /tmp/foo.pdf /tmp/bar.pdf cat output /tmp/foobar.pdf\n```\n\n**Windows**\n\nIn `cmd`:\n\n```batch\ndocker run --rm -t --net=none -v \"%cd%:/tmp\" leplusorg/pdf pdftk /tmp/foo.pdf /tmp/bar.pdf cat output /tmp/foobar.pdf\n```\n\nIn PowerShell:\n\n```pwsh\ndocker run --rm -t --net=none -v \"${PWD}:/tmp\" leplusorg/pdf pdftk /tmp/foo.pdf /tmp/bar.pdf cat output /tmp/foobar.pdf\n```\n\n## Help\n\nTo know more command-line options of one of the pdftk command:\n\n```bash\ndocker run --rm --net=none leplusorg/pdf pdftk -h\n```\n\n## Software Bill of Materials (SBOM)\n\nTo get the SBOM for the latest image (in SPDX JSON format), use the\nfollowing command:\n\n```bash\ndocker buildx imagetools inspect leplusorg/pdf --format '{{ json (index .SBOM \"linux/amd64\").SPDX }}'\n```\n\nReplace `linux/amd64` by the desired platform (`linux/amd64`, `linux/arm64` etc.).\n\n### Sigstore\n\n[Sigstore](https://docs.sigstore.dev) is trying to improve supply\nchain security by allowing you to verify the origin of an\nartifcat. You can verify that the jar that you use was actually\nproduced by this repository. This means that if you verify the\nsignature of the ristretto jar, you can trust the integrity of the\nwhole supply chain from code source, to CI/CD build, to distribution\non Maven Central or whever you got the jar from.\n\nYou can use the following command to verify the latest image using its\nsigstore signature attestation:\n\n```bash\ncosign verify leplusorg/pdf --certificate-identity-regexp 'https://github\\.com/leplusorg/docker-pdf/\\.github/workflows/.+' --certificate-oidc-issuer 'https://token.actions.githubusercontent.com'\n```\n\nThe output should look something like this:\n\n```text\nVerification for index.docker.io/leplusorg/xml:main --\nThe following checks were performed on each of these signatures:\n  - The cosign claims were validated\n  - Existence of the claims in the transparency log was verified offline\n  - The code-signing certificate was verified using trusted certificate authority certificates\n\n[{\"critical\":...\n```\n\nFor instructions on how to install `cosign`, please read this [documentation](https://docs.sigstore.dev/cosign/system_config/installation/).\n\n## Request new tool\n\nPlease use [this link](https://github.com/leplusorg/docker-pdf/issues/new?assignees=thomasleplus\u0026labels=enhancement\u0026template=feature_request.md\u0026title=%5BFEAT%5D) (GitHub account required) to request that a new tool be added to the image. I am always interested in adding new capabilities to these images.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleplusorg%2Fdocker-pdf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleplusorg%2Fdocker-pdf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleplusorg%2Fdocker-pdf/lists"}