A modern, client-side web application for mathematically perfect image print layouts.
Image Print Formatter is a specialized tool designed to solve a common problem: effortlessly arranging single or multiple images onto a physical sheet of paper. By handling the layout logic directly in your browser, it ensures perfect alignment, configurable gaps, and high-quality printed output without ever uploading your personal photos to a server.
- Privacy-First Architecture: 100% client-side processing using the HTML5 File API. No server uploads means your images remain completely private.
- Dynamic Multi-Image Layouts: Upload a single image to duplicate it across a page, or upload a batch of different images. The application mathematically calculates the grid to fit exactly 1, 2, 3, 4, 6, 8, or 9 images per page.
- Intelligent Multi-Page Generation: Automatically overflows to generate multiple, perfectly formatted print sheets if you supply more images than a single page can hold.
- Interactive Panning (Crop Adjust): When using the "Cover" fit mode, intuitively click and drag images within their grid cells to pan and re-frame the subject before printing.
- Precision Print Controls:
- Cut Marks: Toggle printable dashed guidelines to assist with manual trimming (scissors or paper trimmers).
- Custom Margins & Gaps: Fine-tune the spacing between images and the physical edge of the paper.
- Orientation & Fit: Rapidly switch between Portrait/Landscape and
contain/coverobject fitting.
- Premium User Experience: Crafted with the beautiful, high-contrast Catppuccin Mocha color palette, featuring glassmorphic UI elements and subtle micro-animations.
Since the application is entirely static, there are no build steps or dependencies required.
- Clone or download this repository.
- Open
index.htmlin any modern web browser. - Drag and drop your images onto the canvas to begin formatting.
You can easily deploy this application to the web for free:
- Push the code to a GitHub repository.
- Navigate to your repository's Settings > Pages.
- Under Build and deployment, set the source to
Deploy from a branch. - Select the
mainbranch and the/ (root)folder, then save. - Your formatter will be live at
https://<your-username>.github.io/<your-repo>/.
- Structure: Semantic HTML5
- Styling: Vanilla CSS3 (Custom Properties, CSS Grid,
@media print) - Logic: Vanilla JavaScript (ES6+, DOM Manipulation, HTML5 File API)
This project is open-source and available under the MIT License.