KagazKit - Your Ultimate PDF Toolkit. Merge, Split, Convert, and more.
Project description
KagazKit
Note: This project is currently under active development.
KagazKit (“Kagaz” means paper) is a modern, secure, and professional PDF toolkit built with Python and CustomTkinter. It provides an elegant interface for merging PDFs, converting images to PDFs, splitting, rotating, and more.
Features
- Modern UI: Dark mode support, professional design using CustomTkinter.
- Secure: Validation of file inputs and safe handling of file operations.
- Merge PDFs: Combine multiple PDF files with ease.
- Image to PDF: Convert standard image formats (JPG, PNG) to PDF.
- Tools: Split and Rotate PDFs functionality.
- Drag & Drop: Intuitive file management.
Supported Platforms
| Platform | Install Method | Status |
|---|---|---|
| Windows 10/11 | Packaged .exe release |
Supported |
| Windows 10/11 | pip install kagazkit |
Supported |
| Linux | Source install | Best effort |
| macOS | Source install | Best effort |
| Python | Status |
|---|---|
| 3.9 | Supported |
| 3.10 | Supported |
| 3.11 | Supported |
Supported File Types
| Workflow | Supported Inputs | Output |
|---|---|---|
| Merge PDFs | .pdf |
merged .pdf |
| Images to PDF | .png, .jpg, .jpeg |
.pdf |
| Split PDF | .pdf |
one .pdf per page |
| Rotate PDF | .pdf |
rotated .pdf |
Installation
Via pip (Recommended)
KagazKit is available on PyPI and can be installed directly using pip:
pip install kagazkit
Windows .exe
Download the latest packaged Windows build from the GitHub Releases page when you want a no-Python install.
- The Windows build is currently unsigned, so Microsoft Defender SmartScreen may show an "unrecognized app" warning.
- Download
KagazKit.exeonly from the official GitHub Releases page. - Each release also includes
KagazKit.exe.sha256so you can verify the download before running it. - In PowerShell, run
Get-FileHash .\KagazKit.exe -Algorithm SHA256and compare the result to the value inKagazKit.exe.sha256.
From Source
-
Clone the repository:
git clone https://github.com/farjad-hasan/kagazkit.git cd kagazkit
-
Create a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Install the package in editable mode:
pip install -e .
Usage
Run the application:
kagazkit
# Or directly via python
python src/kagazkit/main.py
For concrete workflows and expected inputs, see docs/usage.md. For planned product direction and upcoming feature priorities, see ROADMAP.md. For common failures and packaging-specific guidance, see docs/troubleshooting.md.
Troubleshooting
- If image-to-PDF fails, confirm the file is
.png,.jpg, or.jpegand not a renamed unsupported format. - If you are using the Windows
.exe, compare its version against the latest GitHub release before reporting a conversion issue. - If packaging commands fail locally with
No module named build.__main__, follow the parent-directory build instructions in RELEASE.md. - For step-by-step fixes and bug-reporting prep, see docs/troubleshooting.md.
Project Status
KagazKit is an actively maintained single-maintainer open-source project. The project is releaseable and documented, but reviews and support still depend on one primary maintainer.
For maintainer ownership and expectations, see MAINTAINERS.md.
Maintainer and Support
KagazKit is currently maintained by Farjad Hasan.
- Pull requests and issues are reviewed on a best-effort basis.
- Security reports should follow SECURITY.md instead of public issues.
- General usage questions and bug reports should go through GitHub Issues or the guidance in SUPPORT.md.
- Acknowledgement targets:
- security reports: within 48 hours
- standard issues and pull requests: best effort, typically within 7 days
Contributing
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
Help Wanted
KagazKit is open to outside contributions, especially in areas that reduce single-maintainer risk or improve user experience.
- Windows packaged-app testing and release automation
- GUI-focused end-to-end smoke tests
- documentation improvements and troubleshooting guides
- bug reproduction for file conversion edge cases
- polish for onboarding, accessibility, and release notes
For contributor entry points, see docs/help-wanted.md.
Releasing
See RELEASE.md for the release checklist, including drafting a GitHub release and publishing to PyPI.
Product Roadmap
See ROADMAP.md for the current product roadmap, including near-term and later feature priorities.
Project Hygiene
- Changelog: CHANGELOG.md
- Maintainers: MAINTAINERS.md
- Product roadmap: ROADMAP.md
- Security policy: SECURITY.md
- Support policy: SUPPORT.md
- Usage examples: docs/usage.md
- Troubleshooting: docs/troubleshooting.md
- Help wanted: docs/help-wanted.md
- Issue tracker: GitHub Issues
License
This project is licensed under the MIT License - see the LICENSE file for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kagazkit-0.1.8.tar.gz.
File metadata
- Download URL: kagazkit-0.1.8.tar.gz
- Upload date:
- Size: 16.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1d1d0efd0ec632e0990c6e6c5aef2c36a48727c5f1dd194df1cfb7f735f58631
|
|
| MD5 |
cfd72dd98e2e01b2110c7aa259b770aa
|
|
| BLAKE2b-256 |
1a39b729722aaf8f48b269dd9d73acaf9c7b2ea0e4842f0474663569e315cc01
|
Provenance
The following attestation bundles were made for kagazkit-0.1.8.tar.gz:
Publisher:
release.yml on farjad-hasan/kagazkit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kagazkit-0.1.8.tar.gz -
Subject digest:
1d1d0efd0ec632e0990c6e6c5aef2c36a48727c5f1dd194df1cfb7f735f58631 - Sigstore transparency entry: 1107814854
- Sigstore integration time:
-
Permalink:
farjad-hasan/kagazkit@8532d263f5f0500c1c4c526db86fe3e550cf50af -
Branch / Tag:
refs/tags/v0.1.8 - Owner: https://github.com/farjad-hasan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8532d263f5f0500c1c4c526db86fe3e550cf50af -
Trigger Event:
push
-
Statement type:
File details
Details for the file kagazkit-0.1.8-py3-none-any.whl.
File metadata
- Download URL: kagazkit-0.1.8-py3-none-any.whl
- Upload date:
- Size: 15.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
145c3172530a0e83eb7b421fbb07ffc4140da74ba52bf255fabb106a2e113d8a
|
|
| MD5 |
824c9104ec0055f38a71531fda082470
|
|
| BLAKE2b-256 |
48c9b73589ce97e622217f4e85899895d6dbdcf36c5eec754455f97e96155d2c
|
Provenance
The following attestation bundles were made for kagazkit-0.1.8-py3-none-any.whl:
Publisher:
release.yml on farjad-hasan/kagazkit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kagazkit-0.1.8-py3-none-any.whl -
Subject digest:
145c3172530a0e83eb7b421fbb07ffc4140da74ba52bf255fabb106a2e113d8a - Sigstore transparency entry: 1107814856
- Sigstore integration time:
-
Permalink:
farjad-hasan/kagazkit@8532d263f5f0500c1c4c526db86fe3e550cf50af -
Branch / Tag:
refs/tags/v0.1.8 - Owner: https://github.com/farjad-hasan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8532d263f5f0500c1c4c526db86fe3e550cf50af -
Trigger Event:
push
-
Statement type: