PrintEase is a fully automated print service system that allows students to upload PDFs, pay via Razorpay, and get their documents printed automatically - no manual verification needed.
- Instant Upload: Upload PDF files up to 10MB
- Flexible Print Settings: Choose color mode, duplex, copies, orientation, and pages per sheet
- Automated Payment: Pay via UPI, cards, wallets, or net banking through Razorpay
- Automatic Printing: Documents print immediately after successful payment verification
- Mobile-Friendly: Works seamlessly on iOS and Android devices
- Student uploads PDF and selects print settings
- System calculates total based on settings and page count
- Razorpay checkout opens for payment (UPI, GPay, PhonePe, Paytm, Cards)
- After successful payment, signature is verified
- Document automatically prints to the configured printer
- File is deleted after printing for privacy
- Backend: Flask (Python)
- Payment Gateway: Razorpay
- PDF Processing: PyPDF2
- OS-Level Printing: System print commands
- Python 3.11+
- A Razorpay account (Sign up for test mode)
- A printer configured on the machine that runs PrintEase
PrintEase sends jobs through the operating system's default printer. Before accepting payments, verify that the server can print a test PDF:
- Linux: Install and configure CUPS so the
lpcommand is available and a default printer is set. - macOS: Configure a default printer; PrintEase uses the built-in
lprcommand. - Windows: Install the
pywin32package (pip install pywin32) and configure a default printer.
-
Clone the repository:
git clone https://github.com/Rishet11/PrintEase.git cd PrintEase -
Create virtual environment:
python3 -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Configure environment variables:
- Copy
.env.exampleto.env:cp .env.example .env
- Edit
.envand add your Razorpay test credentials:RAZORPAY_KEY_ID=rzp_test_YOUR_KEY_ID RAZORPAY_KEY_SECRET=YOUR_KEY_SECRET SECRET_KEY=your-random-secret-key
- Copy
-
Run the application:
python app.py
-
Access the app:
- By default, open
http://localhost:5001. - If you use the provided
.envfile, it setsPORT=10000; openhttp://localhost:10000instead. - On mobile (same network), replace
localhostwith your computer's IP address and use the same port.
- By default, open
- Go to Razorpay Dashboard
- Sign up or log in
- Switch to Test Mode (toggle in top navigation)
- Go to Settings → API Keys
- Generate test keys
- Copy Key ID and Key Secret to your
.envfile
In test mode, use these credentials:
Test UPI:
- UPI ID:
success@razorpay
Test Cards:
- Card Number:
4111 1111 1111 1111 - CVV: Any 3 digits
- Expiry: Any future date
Edit config.py to change prices:
PRICE_BW_PER_PAGE = 2 # ₹2 per B&W page
PRICE_COLOR_PER_PAGE = 10 # ₹10 per color page
DUPLEX_DISCOUNT = 0.20 # 20% off for double-sidedRecommended for Physical Printing:
- Deploy with Cloudflare Tunnel (Best reliability)
- Other Alternatives (ngrok, zrok, Pinggy, etc.)
Cloud Hosting (No Physical Printing):
- Always use HTTPS in production
- Keep your Razorpay secret key secure
- Switch to live mode only after thorough testing
- Files are automatically deleted after printing
MIT License. See LICENSE for the full text.