PrintMyCheque
Moroccan cheques and bills of exchange, laid out to the millimetre and printed in the browser — the amount in French words, a dated series of up to 60, and a real-size PDF, with no account and no server.


A cheque is a layout problem measured in millimetres.
PrintMyCheque (subtitle: "Impression de chèques & effets — Maroc") is a free, in-house RAIN tool that fills in Moroccan bank cheques and effets — bills of exchange, also called lettres de change or traites — and prints only the text onto the customer's own pre-printed, bank-issued document. Writing these by hand is slow and error-prone: if the amount in words does not match the figures, or the payee or date is hard to read, the bank can send the document back. Businesses that issue a run of post-dated cheques for rent, instalments or suppliers write the same lines again and again. And the browser makes it harder still, because a web page cannot force a printer driver onto a 175 × 80 mm sheet — it quietly falls back to A4. PrintMyCheque was built for the people who live with that problem every month: individuals, shopkeepers, small and medium businesses and associations in Morocco that issue cheques or traites on a regular schedule.
RAIN treated the whole product as a layout problem in millimetres. A cheque is drawn at 175 × 80 mm and an effet at 175 × 105 mm, each with seven positioned fields, and every coordinate lives in a single data file. The amount is framed in figures (for example #1 234,56#) and written out in French words following cheque conventions — "quatre-vingts", "soixante et onze", "un million de dirhams". A series generator produces up to 60 documents with monthly, fortnightly or weekly dates; X/Y calibration corrects for each printer's offset; and a PDF export makes a page that is exactly the document's size, so the printer picks the right format on its own. Everything runs in the browser: no account, no server, no analytics, with the list kept in the browser's own storage. The same build is wrapped into offline desktop apps for Windows, macOS and Linux. The hosted version now carries a neutral "Imprimer Document" title and short wording, while the desktop builds keep the full cheque vocabulary. It is an independent tool, not affiliated with any bank, and it never creates a cheque — it only prints onto a genuine one.
Millimetre templates, cheque and effet
Moroccan bank colour presets
Documents per dated series
Unit tests in the codebase
Six decisions that put the text in the right place — and six that keep the tool private, fast and portable.
One millimetre layout file
All document geometry lives in a single data file: a 175 × 80 mm cheque and a 175 × 105 mm effet, seven fields each. Per-preset overrides merge field by field, and that merge is covered by its own tests.
French amount-in-words engine
The grammar cheques use — "quatre-vingts" with an s, "soixante et onze", "un million de dirhams" — is encoded once and checked by 36 table-driven tests, including float rounding on the centimes.
Real-size PDF output
Browsers cannot force a printer onto a 175 × 80 mm sheet, so a second output path builds a PDF whose page is the document itself. jsPDF loads only on the first PDF click, adding nothing to first load.
Text-only print sheet
A dedicated print stylesheet sets the page size with @page and hides the on-screen artwork, so only the filled-in text reaches the paper — always black ink on white, whatever the theme.
Dated series generator
One form produces 1 to 60 documents with monthly, fortnightly, weekly or single dates — the post-dated rent or instalment run that used to take an evening by hand.
Printer calibration in mm
Every printer feeds a little differently. An X/Y offset in millimetres is applied identically to the preview, the browser print and the PDF, so one correction fixes all three.
Private by architecture
No backend, no API, no account and no analytics. The document list autosaves in the browser's local storage and never leaves the device; the only external request is the web font.
Theme with no flash
A tiny synchronous script sets system, light or dark before first paint, and the toggle follows OS changes live while on "system". Every UI colour is a token; paper and ink are deliberately fixed.
Bilingual content for search
Below the app sits a static French and Arabic block — how-to, cheque vs effet comparison, FAQ — with correct language and direction attributes, readable by search engines without JavaScript.
One build, three desktop OSes
Relative asset paths let the same build run hosted or embedded. Pake (Tauri) wraps it into offline installers, produced by a GitHub Actions matrix for Windows, macOS and Linux.
Original artwork, neutral skin
On-screen cheques are original SVG drawings — guilloche pattern, colour band, frame — tinted per preset, never scans of a real cheque and never printed. The hosted site uses a neutral "Imprimer Document" skin.
Three dependencies, hand-written CSS
React, React DOM and jsPDF are the only runtime dependencies. Styling is hand-written CSS with design tokens, about 3,500 lines of source in total, linted with oxlint and tested with Vitest.
One screen, every step from blank cheque to printed run.
Choose the document, pick a colour preset, fill the common details, generate a series, calibrate and print. Hover any capability for what it does.
- Cheque 175 × 80 mm
- Effet 175 × 105 mm
- Document tabs
- 7 fields per template
- Prints on your own cheque
- Amount in French words
- Framed figures #…#
- Dirhams and centimes
- Millions and plurals
- Up to 60 documents
- Monthly dates
- Fortnightly dates
- Weekly dates
- Editable table
- Normal
- Barré (//)
- Non endossable
- Non endossable + barré
- Browser print
- Real-size PDF
- Lazy-loaded PDF engine
- Artwork never printed
- Black on white, always
- X offset in mm
- Y offset in mm
- One correction, three outputs
- Live scaled preview
- 19 bank colour presets
- 2 shared layouts
- Original SVG artwork
- Neutral naming
- Single screen
- DD/MM/YYYY date field
- Mobile cards + print bar
- System / light / dark
- Animated demo cheque
- Reduced-motion aware
- No account
- No server
- No analytics
- Local autosave
- Clear list with confirm
- Windows MSI
- macOS DMG
- Linux deb, rpm, AppImage
- Fully offline
- CI build matrix
- French + Arabic guide
- Cheque vs effet table
- Static FAQ
- fr-MA hreflang
- robots, sitemap, llms.txt
- 36 amount-in-words tests
- 6 template tests
- oxlint
- Security headers
- Immutable asset cache
57 capabilities — in one static page with three runtime dependencies, no backend and no sign-up.
Free, private, and exact to the millimetre.
PrintMyCheque sits between writing by hand and buying cheque-printing software. The comparison below is by category — typical paid desktop tools, ERP and accounting modules, and office templates — not against any named product.
| PrintMyCheque | By hand | Paid desktop software | ERP cheque module | Office template | |
|---|---|---|---|---|---|
| French amount in words, automatic | ✓ | — | ✓ | ✓ | ○ |
| Real-size 175 × 80 mm output | ✓ | — | ✓ | ○ | ○ |
| Effets / lettres de change | ✓ | ✓ | ○ | ○ | ○ |
| Dated series up to 60 | ✓ | — | ○ | ○ | — |
| Crossing & endorsement markings | ✓ | ✓ | ✓ | ○ | ○ |
| Printer calibration in mm | ✓ | — | ✓ | ○ | — |
| No account or install needed | ✓ | ✓ | — | — | ○ |
| Data stays on the device | ✓ | ✓ | ✓ | ○ | ✓ |
| Free to use | ✓ | ✓ | — | — | ○ |
| Windows, macOS and Linux | ✓ | — | ○ | ○ | ○ |
| Works in any modern browser | ✓ | — | — | ○ | — |
From an evening of handwriting to one printed run.
PrintMyCheque turns a repetitive, error-prone chore into a single form. The amount in words is generated, the figures are framed, the dates follow the schedule, the markings land in the corner, and the printer receives a page the exact size of the document. Nothing is uploaded and nothing is stored anywhere but the user's own browser. It is live and free at printmycheque.vercel.app, built in-house by RAIN with React 19, Vite 8 and jsPDF.
The product went from first commit to version 27.4.1 in three days in August 2026 — ten commits and seven tagged versions — with 42 unit tests in the codebase (36 for the amount in words, 6 for template merging). Offline desktop installers were produced for Windows (MSI), macOS (Apple Silicon and Universal DMG) and Linux (deb, rpm and AppImage); they are unsigned builds, so the operating system shows its usual first-launch warning. On 7 August 2026 the hosted version moved to a neutral "Imprimer Document" skin with short labels and plainer wording, while the desktop builds keep the full cheque vocabulary. Field positions follow the standard Moroccan format rather than measurements from every chequebook, so a test print with calibration is part of the workflow, and acceptance remains each bank's decision. No usage, download or traffic figures are recorded, so none are claimed here.
PrintMyCheque — FAQ
PrintMyCheque is a free web tool built in-house by RAIN Design Studio in Casablanca. It fills in Moroccan cheques and effets (bills of exchange) on screen and prints only the text onto the user's own pre-printed, bank-issued document.
No. It never produces a cheque. The decorative cheque drawing appears on screen only; the print and the PDF carry just the text, which goes onto the genuine document your bank issued.
A dedicated engine converts the figures into French words using the conventions cheques follow, such as quatre-vingts, soixante et onze and un million de dirhams. The logic is covered by 36 table-driven unit tests.
Browsers cannot force a printer onto a 175 × 80 mm sheet and usually fall back to A4. The PDF's page is the exact size of the document, so the printer selects the right format, and an X/Y offset in millimetres corrects any feed offset.
No. The 19 presets are colour schemes for the on-screen drawing, all sharing two standard Moroccan layouts: one for cheques and one for effets. Positions follow the standard format rather than measurements of every chequebook, so a calibrated test print is recommended, and acceptance is always the bank's decision. The tool is independent and not affiliated with any bank.
Only in your browser. There is no backend, no account and no analytics; the document list autosaves in local storage on your device. The desktop apps for Windows, macOS and Linux run fully offline.