Resizaar is a user-friendly desktop application for resizing PDFs, optimized for e-readers like Kindle and reMarkable. It provides a simple drag-and-drop interface for a task that traditionally required command-line expertise.
-
k2pdfopt: The core PDF resizing functionality is powered by k2pdfopt, an exceptional command-line tool created by Willus Hines. Visit k2pdfopt's official website to learn more about this powerful tool.
-
Electron: Resizaar is built using Electron, enabling us to create a cross-platform desktop application using web technologies. Learn more about Electron at electronjs.org.
- Node.js (v14.0.0 or later)
- npm (comes with Node.js)
- Git
-
Clone the repository: git clone https://github.com/2oby/Resizaar.git cd Resizaar
-
Install dependencies: npm install
-
Build the application: npm run build
This creates distributable packages in the dist folder.
- macOS: Open the
.dmgfile in thedistfolder and drag Resizaar to your Applications folder. - Windows: Run the
.exeinstaller from thedistfolder. - Linux: Make the
.AppImagefile in thedistfolder executable and run it.
- Launch Resizaar
- Drag and drop PDF files onto the application window
- Select your target device (Kindle or reMarkable)
- Click "Resize PDFs"
- Resized PDFs will be saved in the same folder as the originals, with "_kindle" or "_remarkable" appended to the filename
Resizaar is licensed under the MIT License. See the LICENSE file for details.
k2pdfopt is licensed under the Affero GPL License. For more details, visit k2pdfopt's license page.
Resizaar is built with Electron, utilizing a main process (index.js) and a renderer process (renderer.js). It uses IPC (Inter-Process Communication) to handle the PDF resizing operations.
Key components:
index.js: Sets up the Electron window and manages k2pdfopt executionrenderer.js: Handles UI interactions and communicates with the main processpreload.js: Provides a secure bridge between renderer and main processesindex.html&styles.css: Define the application's UI
The application uses child processes to execute k2pdfopt commands, with progress updates sent back to the UI via IPC.
Feel free to clone this repository and extend Resizaar's functionality. While I won't have time to actively maintain this project, I appreciate any contributions or improvements you might make.
If you find Resizaar useful, you can show your appreciation by checking out my science fiction books at www.tobyweston.net.
Happy PDF resizing!