Skip to content

Arin1599/Auto_ss

Repository files navigation

Auto_ss

Auto_ss is a GUI-based Python application that allows users to capture screenshots, manage them via a thumbnail interface, and save them as a single PDF file. The project is designed to be user-friendly and highly customizable, making it suitable for personal and professional use. This is very handy for students who need to take screenshots of their work and save them as a PDF.


Features

1. Take Screenshots

  • Capture screenshots using customizable keyboard shortcuts.
  • Option to compress screenshots for optimized file size.
  • Area Selection: You can select a specific area of the screen to capture. When enabled, the app will prompt you to select the area once, and all screenshots will use this area until you reset it.
  • Reset Screenshot Area: Use the "Reset Screenshot Area" button to re-select the area at any time.

2. Manage Screenshots

  • View screenshots in a grid layout with draggable thumbnails.
  • Reorder thumbnails using arrow keys or drag-and-drop.
  • Select, delete, or clear all screenshots.
  • Area selection is persistent until reset, making repeated workflow easy.

3. Save as PDF

  • Combine selected screenshots into a single PDF file.
  • Customizable quality settings for PDF creation.
  • Aspect Ratio Preserved: Screenshots are scaled to fit the PDF page but always maintain their original aspect ratio, so images never appear stretched or distorted.

4. Keyboard Shortcuts

  • Quickly take screenshots, save PDFs, or exit the application using hotkeys.

Dependencies

Required Python Libraries

  • Tkinter: For creating the graphical user interface.
  • Pillow: For handling image processing and thumbnails.
  • Keyboard: For capturing global keyboard shortcuts.
  • Draggable Components: For drag-and-drop functionality (custom module).
  • Settings Manager: For managing user preferences (custom module).
  • Screenshot Manager: For screenshot handling and PDF creation (custom module).

Installation

  1. Clone this repository:

    git clone https://github.com/Arin1599/Auto_ss.git
    cd Auto_ss
  2. Install required libraries:

    pip install -r requirements.txt
  3. Run the application:

    python app.py

Usage

Launching the Application

Run the script app.py to launch the GUI.

Keyboard Shortcuts

Customize the shortcuts in settings_manager.py:

  • Take Screenshot: Ctrl+Shift+S
  • Save PDF: Ctrl+Shift+P
  • Exit Application: Ctrl+Shift+Q

Taking Screenshots

  • Press the Take Screenshot button or use the assigned keyboard shortcut.
  • If "Select Area Before Screenshot" is enabled, you will be prompted to select a region the first time. All subsequent screenshots will use this region until you click "Reset Screenshot Area".
  • Screenshots appear as thumbnails in the "Screenshots" section.

Reordering Thumbnails

  • Use arrow keys or drag and drop the thumbnails to reorder them.

Saving as PDF

  • Click the Save PDF button or use the assigned shortcut.
  • Choose a destination and filename to save the PDF.

Resetting Screenshot Area

  • Click the Reset Screenshot Area button to re-select the area for future screenshots.

Clearing Screenshots

  • Click the Clear All button to remove all screenshots.

Project Structure

ScreenshotToPDF/
├── draggable_components.py  # Handles drag-and-drop functionality for thumbnails.
├── settings_manager.py      # Manages application settings like shortcuts and compression.
├── screenshot_manager.py    # Handles screenshot capturing and PDF creation.
├── app.py                   # Main application logic.
├── README.md                # Project documentation.
└── requirements.txt         # Python dependencies.

Customization

Settings

Update settings_manager.py or screenshot_settings.json for:

  • Keyboard shortcuts
  • Compression preferences
  • Screenshot quality settings
  • Area selection toggle and persistent area

UI Layout

Modify app.py for customizing the GUI layout or adding new features.


Contributing

Contributions are welcome! To contribute:

  1. Fork the repository.
  2. Create a feature branch.
  3. Commit your changes.
  4. Submit a pull request.

Acknowledgments

  • Inspired by the need for a simple screenshot-to-PDF tool.
  • Special thanks to the Python community for the amazing libraries.
  • Used Gen AI to get around the coding and limitations of the project.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages