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.
- 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.
- 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.
- 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.
- Quickly take screenshots, save PDFs, or exit the application using hotkeys.
- 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).
-
Clone this repository:
git clone https://github.com/Arin1599/Auto_ss.git cd Auto_ss -
Install required libraries:
pip install -r requirements.txt
-
Run the application:
python app.py
Run the script app.py to launch the GUI.
Customize the shortcuts in settings_manager.py:
- Take Screenshot:
Ctrl+Shift+S - Save PDF:
Ctrl+Shift+P - Exit Application:
Ctrl+Shift+Q
- Press the
Take Screenshotbutton 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.
- Use arrow keys or drag and drop the thumbnails to reorder them.
- Click the
Save PDFbutton or use the assigned shortcut. - Choose a destination and filename to save the PDF.
- Click the
Reset Screenshot Areabutton to re-select the area for future screenshots.
- Click the
Clear Allbutton to remove all screenshots.
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.
Update settings_manager.py or screenshot_settings.json for:
- Keyboard shortcuts
- Compression preferences
- Screenshot quality settings
- Area selection toggle and persistent area
Modify app.py for customizing the GUI layout or adding new features.
Contributions are welcome! To contribute:
- Fork the repository.
- Create a feature branch.
- Commit your changes.
- Submit a pull request.
- 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.