{"id":37081239,"url":"https://github.com/christopher-chandler/i2pdf","last_synced_at":"2026-01-14T09:52:25.932Z","repository":{"id":218423718,"uuid":"465860337","full_name":"christopher-chandler/i2pdf","owner":"christopher-chandler","description":"i2pdf combines multiple images together to create a single .pdf.","archived":false,"fork":false,"pushed_at":"2023-03-04T06:07:01.000Z","size":31944,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-25T08:53:45.683Z","etag":null,"topics":["cli","image","pdf"],"latest_commit_sha":null,"homepage":"","language":"Python","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/christopher-chandler.png","metadata":{"files":{"readme":"README.MD","changelog":null,"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}},"created_at":"2022-03-03T19:39:32.000Z","updated_at":"2025-06-26T08:14:24.000Z","dependencies_parsed_at":"2024-01-21T21:51:56.257Z","dependency_job_id":null,"html_url":"https://github.com/christopher-chandler/i2pdf","commit_stats":null,"previous_names":["esc-linguistic-baselines/i2pdf","christopher-chandler/i2pdf"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/christopher-chandler/i2pdf","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/christopher-chandler%2Fi2pdf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/christopher-chandler%2Fi2pdf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/christopher-chandler%2Fi2pdf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/christopher-chandler%2Fi2pdf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/christopher-chandler","download_url":"https://codeload.github.com/christopher-chandler/i2pdf/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/christopher-chandler%2Fi2pdf/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28416120,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T08:38:59.149Z","status":"ssl_error","status_checked_at":"2026-01-14T08:38:43.588Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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","image","pdf"],"created_at":"2026-01-14T09:52:25.282Z","updated_at":"2026-01-14T09:52:25.925Z","avatar_url":"https://github.com/christopher-chandler.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":" \u003cdiv id=\"top\"\u003e\u003c/div\u003e\n\n\u003c!-- PROJECT SHIELDS --\u003e\n\n\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/christopher-chandler/i2pdf\"\u003e\n    \u003cimg src=\"img/logo.png\" alt=\"i2pdf\" width=\"150\" height=\"150\"\u003e\n  \u003c/a\u003e\n\n![Version][Version-shield]  [![MIT License][license-shield]][license-url] ![update][update-shield]\n\n[![Stargazers][stars-shield]][stars-url]\n\n![Windows][windows-shield] ![Mac][Mac-shield]\n\n\n\u003ch3 align=\"center\"\u003ei2pdf\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    i2pdf combines multiple images together to create a single .pdf.\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/christopher-chandler/i2pdf/issues\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/christopher-chandler/i2pdf/issues\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\n      \u003ca href=\"#about-the-project\"\u003eAbout The Project\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#built-with\"\u003eBuilt With\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#prerequisites\"\u003ePrerequisites\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#roadmap\"\u003eRoadmap\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contact\"\u003eContact\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#acknowledgments\"\u003eAcknowledgments\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n## About The Project\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/christopher-chandler/i2pdf\"\u003e\n    \u003cimg src=\"img/screen.png\" alt=\"Logo\" width=\"600\" height=\"300\"\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n### Built With\n\nA list of frameworks that were used in developing the program. \n* [typer](https://typer.tiangolo.com/)\n* [PyYAML](https://pypi.org/project/PyYAML/)\n* [Pillow](https://pillow.readthedocs.io/en/stable/)\n* [PyPDF2](https://pythonhosted.org/PyPDF2/)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\u003c!-- GETTING STARTED --\u003e\n## Getting Started\n\ni2pdf was created with python 3.9 and should be used with this version of python.\n\n\n### Prerequisites\n\n#### Standard Libraries\nThe following standard libraries are used. \n```\ndatetime\nos\nplatform\n```\n\n#### Pip\n\nThe following dependencies are necessary.\n```\ntyper~=0.4.0\nPyYAML~=6.0\nPillow~=9.0.1\nPyPDF2~=1.26.0\nsetuptools~=58.1.0\n```\n\n### Installation\n\nTo install i2pdf, enter the following command in the command prompt:\n\n1) pypi installation\n```\npip install i2pdf\n```\n\n2) build from local project \n```\nbash build_package.bash\n```\nIf the installation was successful, then the following text \nshould appear in the terminal \n\n#### Mac example:\n```\nUsage: main_app.py [OPTIONS] COMMAND [ARGS]...\n\nOptions:\n  --install-completion [bash|zsh|fish|powershell|pwsh]\n                                  Install completion for the specified shell.\n  --show-completion [bash|zsh|fish|powershell|pwsh]\n                                  Show completion for the specified shell, to\n                                  copy it or customize the installation.\n\n  --help                          Show this message and exit.\n\nCommands:\n  add-metadata  Add the data from the .yaml file to the .pdf as metadata.\n  gen-dir       Generate directories where the files should reside.\n  gen-pdf       Generate a .pdf from a collection of images.\n\n```\n \n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- USAGE EXAMPLES --\u003e\n## Usage\n\n### Commands\n\n#### add-metadata\n\n```\nArguments:\n  [PDF_NAME]     The name of the .pdf that should have metadata added.\n                 [default: ]\n\n  [CONFIG_NAME]  The name of the .yaml file which contains the config data.\n                 [default: ]\n```\n\nExample:\n```\ni2pdf add-metadata test.pdf test.yml\n```\n\nIf you wish to have metadata added to the .pdf,\nyou must store it in a .yaml or .yml file. \n\nThe format of this file should be as follows:\n```\n/author: test author\n/keywords: test keywords\n```\n\nThis file should be stored in the config folder. \n\n#### gen-dir \nBefore you can combine the images to a .pdf,\nyou must first generate the necessary folders. \nIt is possible to do this by hand, \nbut this command automatically generates the folders \nin the directory in which i2pdf was called. \n\nThe following empty folders are generated:\n\n| Folder      | Description |\n| ----------- | ----------- |\n| config      | this contains the .yaml files.       |\n| images   | the image files that are to be combined to a pdf        |\n| pdfs      | the generated .pdf files.       |\n| results | the pdf files that had metadata added .       |\n\n#### gen-pdf \n```\nArguments:\n  [SAVE_NAME]  Enter the save name of the .pdf file  [default: generated]\n```\n\nExample:\n```\ni2pdf gen-pdf testfile\n```\nPlace the images in this file that are to be combined to a .pdf file.\nYou have the option of specifying a name for the file being generated.\nif no file is added, then it is automatically called generated \n\n\n\n\n\u003c!-- ROADMAP --\u003e\n#### Roadmap\n\n- [ ] adding the ability to add a table of contents to the generated pdf.\n \n\nSee the [open issues](https://github.com/christopher-chandler/i2pdf/issues) for a full list of proposed features (and known issues).\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- CONTRIBUTING --\u003e\n## Contributing\n\nContributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.\n\nIf you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag \"enhancement\".\nDon't forget to give the project a star! Thanks again!\n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- LICENSE --\u003e\n## License\n\nDistributed under the MIT License. See `LICENSE` for more information.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- CONTACT --\u003e\n## Contact\n\nChristopher Chandler - christopher.chandler@outlook.de\n\nProject Link: [https://github.com/christopher-chandler/i2pdf](https://github.com/christopher-chandler/i2pdf)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\u003c!-- ACKNOWLEDGMENTS --\u003e\n## Acknowledgments\n\n/\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n\n[contributors-shield]: https://img.shields.io/github/contributors/christopher-chandler/i2pdf?color=green\u0026logoColor=%20\n[contributors-url]: https://github.com/christopher-chandler/i2pdf/graphs/contributors\n\n[stars-shield]: https://img.shields.io/github/stars/christopher-chandler/i2pdf?logoColor=yellow\u0026style=social\n[stars-url]: https://github.com/christopher-chandler/i2pdf/stargazers\n\n[license-shield]: https://img.shields.io/github/license/christopher-chandler/i2pdf?color=yellow\n[license-url]: https://github.com/christopher-chandler/i2pdf/blob/master/LICENSE\n\n[download-shield]: https://img.shields.io/github/downloads/christopher-chandler/i2pdf/total\n\n[windows-shield]:  https://img.shields.io/badge/Windows-Tested-purple \n[mac-shield]: https://img.shields.io/badge/Mac-Tested-purple\n[version-shield]: https://img.shields.io/badge/Version-1.0.9-brightgreen\n[update-shield]: https://img.shields.io/badge/Last_Updated-March_2022-blue","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchristopher-chandler%2Fi2pdf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchristopher-chandler%2Fi2pdf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchristopher-chandler%2Fi2pdf/lists"}