Professional check printing and payment documentation that runs entirely in your browser
PrintChecks is a fork of PrintMeChecks that dramatically expands its capabilities to offer enhanced customization, richer output, and business-ready payment documentation. What started as a simple check-printing tool has evolved into a comprehensive, privacy-focused financial documentation system.
Privacy First: Other check printing services charge $1.25+ per check and require you to upload sensitive banking information to third-party servers. PrintChecks runs entirely in your browserβno data ever leaves your computer.
Business Ready: Manage multiple bank accounts, track vendors, generate professional receipts, and access comprehensive payment analyticsβall from one local tool.
Cost Effective: Buy blank check stock from any office supply store and print unlimited checks for free. No subscriptions, no per-check fees, no compromises.
- Print checks on standard 8.5" x 11" paper
- Official E13B MICR font for routing and account numbers
- Automatic amount-to-words conversion
- Elegant signature fonts (optional)
- Multiple bank account support
- Custom logo upload and positioning
- Create itemized receipts with line items
- Automatic calculations (subtotal, tax, totals)
- Professional formatting for business use
- Font customization for every check element
- Color schemes and styling presets
- Logo upload with positioning controls
- Preset system for quick style switching
- Store vendor information (name, address, email, phone)
- Quick-fill vendor details on checks
- Track payment history per vendor
- Payment volume tracking over time
- Top vendors by payment amount
- Monthly spending breakdowns
- Check frequency analysis
- Comprehensive payment history
- Complete payment history tracking
- Combined view of checks and receipts
- Immutable payment records
- Coming Soon: Search, filters, pagination, sorting, and data export
- 100% Local: All processing happens in your browser
- No Network Requests: Zero external server communication
- Local Storage: Data stays on your computer
- No Tracking: No analytics, cookies, or user tracking
- Open Source: Audit the code yourself
- Node.js (v18+ recommended)
- npm or yarn package manager
- Clone the repository
git clone https://github.com/Danford/PrintChecks.git
cd PrintChecks/printchecks- Install dependencies
npm install- Start the development server
npm run dev- Open in your browser
Navigate to
http://localhost:5173/
npm run buildThe production build will be in the dist/ directory, ready to deploy to any static hosting service.
-
Add a Bank Account
- Navigate to "Bank Accounts" in the sidebar
- Enter your routing number, account number, and bank name
- Optionally upload your bank's logo
-
Configure Check Style
- Go to "Customization" to personalize fonts, colors, and layout
- Upload your company logo if desired
- Save preset styles for quick access
-
Print Your First Check
- Return to "Home" and fill in the check details
- Select payee (or add a new vendor)
- Enter amount and memo
- Click "Print" to generate a print-ready check
- Navigate to "Vendors" in the sidebar
- Click "Add Vendor" to create new entries
- Fill in vendor details (name, address, contact info)
- Use vendors for quick-fill when printing checks
- Go to "Receipts" in the sidebar
- Add line items with descriptions and amounts
- Configure tax rates and additional charges
- Generate and print professional receipts
- Navigate to "Analytics"
- Review payment trends over time
- Identify top vendors by payment volume
- Analyze monthly spending patterns
PrintChecks is also available as modular npm packages for integration into your own applications:
# Core library (framework-agnostic)
npm install @printchecks/core
# Vue 3 integration
npm install @printchecks/vue
# Web Components (works with any framework)
npm install @printchecks/web-componentsimport { PrintChecksCore } from '@printchecks/core'
const printChecks = new PrintChecksCore()
// Create a check
const check = await printChecks.createCheck({
checkNumber: '1001',
date: new Date().toLocaleDateString(),
amount: 1250.00,
payTo: 'Acme Corporation',
memo: 'Invoice #12345',
// ... other fields
})This repository uses a monorepo structure with pnpm workspaces:
# Install dependencies
pnpm install
# Build all packages
pnpm build
# Develop specific package
pnpm dev:core
pnpm dev:vue
# Run documentation site
pnpm docs:dev
# Type checking
pnpm type-check
# Linting
pnpm lintPrintChecks/
βββ printchecks/ # Main application directory
β βββ src/
β β βββ components/ # Vue components
β β β βββ customization/ # Customization UI components
β β β βββ receipt/ # Receipt and line item components
β β βββ composables/ # Reusable Vue composition functions
β β βββ stores/ # Pinia state management
β β β βββ app.ts # Global app state
β β β βββ check.ts # Check management
β β β βββ customization.ts # Styling and presets
β β β βββ receipt.ts # Receipt functionality
β β β βββ history.ts # History tracking
β β βββ types/ # TypeScript type definitions
β β βββ views/ # Vue router views (pages)
β β βββ router/ # Vue Router configuration
β β βββ main.ts # Application entry point
β βββ public/ # Static assets
β βββ scripts/ # Development utility scripts
β βββ package.json # Dependencies and scripts
βββ LICENSE # MIT License
βββ README.md # This file
- Vue.js 3 - Progressive JavaScript framework
- TypeScript - Type-safe JavaScript
- Pinia - Intuitive state management
- Vue Router - Official routing solution
- Vite - Lightning-fast build tool
- Bootstrap 5 - Responsive CSS framework
- to-words - Currency to text conversion
- print-js - Browser printing library
# Development
npm run dev # Start dev server with hot reload
npm run dev:clear # Start dev server with cleared history (debugging)
# Production
npm run build # Build for production
npm run preview # Preview production build locally
# Code Quality
npm run type-check # Run TypeScript type checking
npm run lint # Lint and auto-fix with ESLint
npm run format # Format code with PrettierWe welcome contributions! Here's how you can help:
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Make your changes and ensure code quality
npm run lint && npm run type-check - Commit your changes
git commit -m 'Add amazing feature' - Push to your fork
git push origin feature/amazing-feature
- Open a Pull Request
- Follow existing code style (enforced by ESLint and Prettier)
- Write TypeScript with proper type definitions
- Test your changes thoroughly
- Update documentation as needed
- Keep commits focused and atomic
- Ensure the
expanded_fonts.jsfile is present in the project root - Check browser console for font loading errors
- Try clearing browser cache
- Verify your browser's print settings (margins, scale)
- Ensure "Background graphics" is enabled in print options
- Use Chrome or Firefox for best results
- Check that localStorage is enabled in your browser
- Ensure you're not in private/incognito mode
- Check browser console for storage errors
- Delete
node_modulesandpackage-lock.json - Run
npm installagain - Ensure you're using Node.js v18+
This project is licensed under the MIT License - see the LICENSE file for details.
Copyright Β© 2025 Joshua Danford
- Original PrintMeChecks project by sktzofrenic
- Vue.js community for excellent documentation and tools
- All contributors who have helped improve this project
- Original Project: PrintMeChecks
- Demo: Live Demo (original version - may differ from this fork)
- Issues: Report a bug or request a feature
- Check Stock: Use standard 8.5" x 11" blank check stock with MICR ink compatibility
- Printer Settings:
- Disable margins or use minimal margins
- Enable "Background graphics"
- Use 100% scale (no fit-to-page)
- Browser: Chrome and Firefox provide the most consistent printing results
- Backups: Periodically export your history and vendor data
- Security: Run locallyβnever host this on a public server with real banking information
PrintChecks: Take control of your payment documentation. Private, professional, and completely free. π¦β¨



