Skip to main content

KagazKit - Your Ultimate PDF Toolkit. Merge, Split, Convert, and more.

Project description

KagazKit

License Python Code Style

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.exe only from the official GitHub Releases page.
  • Each release also includes KagazKit.exe.sha256 so you can verify the download before running it.
  • In PowerShell, run Get-FileHash .\KagazKit.exe -Algorithm SHA256 and compare the result to the value in KagazKit.exe.sha256.

From Source

  1. Clone the repository:

    git clone https://github.com/farjad-hasan/kagazkit.git
    cd kagazkit
    
  2. Create a virtual environment:

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  3. Install dependencies:

    pip install -r requirements.txt
    
  4. 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 .jpeg and 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

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

kagazkit-0.1.8.tar.gz (16.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kagazkit-0.1.8-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

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

Hashes for kagazkit-0.1.8.tar.gz
Algorithm Hash digest
SHA256 1d1d0efd0ec632e0990c6e6c5aef2c36a48727c5f1dd194df1cfb7f735f58631
MD5 cfd72dd98e2e01b2110c7aa259b770aa
BLAKE2b-256 1a39b729722aaf8f48b269dd9d73acaf9c7b2ea0e4842f0474663569e315cc01

See more details on using hashes here.

Provenance

The following attestation bundles were made for kagazkit-0.1.8.tar.gz:

Publisher: release.yml on farjad-hasan/kagazkit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for kagazkit-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 145c3172530a0e83eb7b421fbb07ffc4140da74ba52bf255fabb106a2e113d8a
MD5 824c9104ec0055f38a71531fda082470
BLAKE2b-256 48c9b73589ce97e622217f4e85899895d6dbdcf36c5eec754455f97e96155d2c

See more details on using hashes here.

Provenance

The following attestation bundles were made for kagazkit-0.1.8-py3-none-any.whl:

Publisher: release.yml on farjad-hasan/kagazkit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page