All projects

Technical Report · Workflow Automation

Assignment Solver - Handwritten Page Generator

Document-automation tool that converts editable text into handwritten-style notebook images using custom fonts, backgrounds, formatting rules and OpenCV/PIL image composition.

AUTHOR  Gaurav Verma CATEGORY  Workflow Automation SOURCE  https://github.com/GAURAV-321/assignment_solver DATE  Dec 2021 STATUS  published
View Source Python OpenCV PIL Typography

Abstract

A Python document-automation tool that converts editable text into handwritten-style notebook page images. The core challenge is layout: fitting variable-width handwriting glyphs into fixed line spacing and page boundaries while the output still reads as natural handwriting.

1. What This Is

Built in December 2021, the Assignment Solver takes plain text input and produces a sequence of notebook-style page images. Custom handwriting font files replace system fonts, and configurable background images let the same generator target different paper layouts.

Lightweight formatting markers in the source text control headings and spacing without a full markup language. The tool was designed as a one-off automation for repetitive assignment formatting.

2. How It Works

The pipeline is a five-stage sequential process from raw text to saved page images.

# Stage Input Tool Output
01 Asset load Source text, font files, background image Python / PIL Loaded assets in memory
02 Parse & split Raw text with formatting markers Python Line-level layout list
03 Position calc Line list, page dimensions, spacing rules Python / OpenCV Pixel coordinates per line
04 Render Coordinates, handwriting font PIL Text layer per page
05 Compose & save Text layer, notebook background OpenCV / PIL Final page images in output dir

3. Implementation Notes

3.1 Font and background separation

Text content is kept entirely separate from visual templates. Swapping a handwriting font or a notebook background requires no code changes, only a new asset file. This made it easy to test different hand styles during development.

3.2 Formatting markers

Rather than a full markup parser, the tool uses lightweight inline markers in the source text to flag headings and adjust spacing. The trade-off is simplicity: the parser is a handful of string checks, but it covers the formatting cases the project actually needed.

3.3 Interactive tuning

OpenCV trackbar-style controls let the user adjust line spacing and font size at runtime before committing to a final render. Useful during setup, but it ties the tool to an interactive session rather than a headless batch run.

4. Constraints

  • Fixed line spacing

    Text is placed at pre-computed line positions. There is no dynamic reflow, so a line that is too long for the page width will clip or overlap the next line.

  • Font-only handwriting

    The handwriting effect is a single TTF font rendered per glyph. There is no stroke-level variation, so repeated characters look identical and the result is less convincing than true pen simulation.

  • No overflow validation

    The pipeline does not check whether total text fits within page boundaries before rendering. Overlong documents can produce pages with text running off the bottom edge.

  • Archived, single-purpose scope

    Built as a one-off automation in December 2021. No test suite, no CI, and the trackbar UI means it cannot run unattended in a batch pipeline.

5. Next

  1. a. Add overflow detection and automatic page-break logic so long documents split cleanly across pages.
  2. b. Extend the formatting markers to support underline, bold emphasis, and simple inline math notation.
  3. c. Replace the trackbar UI with a small CLI that accepts a config file, enabling headless batch runs.

— end of report —