How I Convert Handwritten Notes to Text: For E-Ink Device Users
Ever felt stuck between the joy of handwriting on your e-ink tablet and the practicality of having a centralized searchable notes on your computer? Yeah, me too.
Ever felt stuck between the joy of handwriting on your e-ink tablet and the practicality of having a centralized searchable notes on your computer? Yeah, me too. For the longest time, I was doing this awkward dance between my Boox and Supernote devices, manually exporting files, converting formats, and copy-pasting text like it was 1999.
But here’s the thing: it doesn’t have to be that way.
After months of tinkering, I’ve built an automated workflow that converts my handwritten notes to text, interprets my terrible drawings, and even extracts action items—all without me lifting a finger. And today, I’m pulling back the curtain to show you exactly how it works.
If you’re using one or more e-ink device for handwriting and want to bridge the gap to your digital note-taking system, buckle up. This is going to be good.
And before you ask, YES, this same workflow can be used to work with physical handwriting tools like pen and paper.
Why Built-In Handwriting Recognition Just Doesn’t Cut It
Let’s be real for a second. Both Boox and Supernote come with handwriting-to-text conversion features. And they’re... fine? The problem is they’re incredibly limiting. If your handwriting is even slightly messy (guilty as charged), you’ll spend more time correcting mistakes than you would’ve just typing the notes in the first place.
Plus, these built-in tools miss the bigger picture. They can’t interpret drawings, extract action items, or format your notes the way you actually want them. They’re one-size-fits-all solutions in a world where we all have different workflows.
That’s why I went the automation route—to create something flexible, reliable, and honestly, way more powerful than what comes out of the box.
The Challenge of Using Multiple E-Ink Devices
Here’s my situation: I use both a Boox device and a Supernote. Why? Because each has its strengths. The Boox has a front light, which is a lifesaver when I’m journaling early in the morning or reading at night. The Supernote, on the other hand, has this buttery-smooth writing experience that I can’t get enough of.
But using two devices means double the complexity. Sometimes I start a journal entry on one device and finish it on another—same date, different devices. Managing that manually? Absolute nightmare.
The good news is that both devices have solid sync capabilities, which becomes the foundation of this entire automation. If you’re only using one device, congratulations—your life just got easier. But even if you’re juggling multiple devices like me, this workflow handles it beautifully.
Setting Up Device Sync
Before we dive into the fancy automation stuff, we need to get your devices talking to your computer. Both Boox and Supernote support third-party cloud syncing, which is crucial for this workflow.
Configuring Boox Cloud Sync
On the Boox device, head into your notes settings and look for the third-party account options. You’ll see choices like Google Drive, OneDrive, and Dropbox. Here’s what I learned the hard way: OneDrive is way more reliable for this particular use case.
I tested both Google Drive and OneDrive extensively, and while Google Drive would sync to the cloud just fine, it often failed to sync down to my Mac reliably—even when I had the folder set to “keep local.” I’d find myself restarting the Google Drive app multiple times a day. OneDrive? Rock solid, well.... most of the time. Your mileage may vary, but that’s been my experience.
One more tweak on the Boox side: change your export format to “Bitmap PDF” instead of the default Vector PDF. The bitmap format worked more reliably with AI transcription tools in my experience, and since we’re not going to edit the PDFs themselves, there’s no downside.
The beautiful thing about Boox is that it handles sync and conversion in one go. When you sync your notes, it automatically converts them to PDF and uploads them. Simple and elegant.
Setting Up Supernote Sync
Supernote offers similar cloud options—you can use the Supernote Cloud, Dropbox, Google Drive, or OneDrive. But here’s the kicker: if you use Supernote Cloud, you get automatic background syncing. Every time you close a note, it syncs automatically. With the third-party options, you have to manually trigger syncs.
For this workflow, I went with the Supernote Partner app for Mac. It syncs in near real-time and gives you access to all your notes on your desktop. The catch? Unlike Boox, Supernote only syncs the native .note format. You’ll need to convert those files to images or PDFs separately—which is exactly what our automation will handle.
Understanding the Folder Structure
Once sync is set up, you’ll have folders on your computer containing your notes. Here’s how I organize mine:
Boox folder: Lives in my OneDrive directory, contains PDFs of my Boox notes
Supernote Partner App: Contains .note files that need conversion
Supernote folder: Used to store the converted Supernote .note files as png.
Transcribed folder: Where all final transcriptions land, regardless of which device they came from
This folder structure is important because our automation will watch these directories for changes and process files accordingly.
Enter N8N: Your Automation Powerhouse
Here’s where things get interesting. N8N is an open-source workflow automation tool—think Zapier, but you run it locally for FREE and have way more control. It’s the engine that powers this entire system.
I’ve set up three main workflows in N8N:
The main transcription workflow (handles PDFs and images)
The Supernote conversion workflow (converts .note files to PNGs)
The Capacities integration workflow (sends transcriptions to my note-taking app)
Let me break down each one.
Main Transcription Workflow: Where the Magic Happens
The first workflow watches your folders for any changes or new files. When it detects something, here’s what happens:
Step 1: File Detection: A local file trigger monitors the folder hierarchy. Any time a file is added or modified, the workflow kicks off.
Step 2: File Filtering: Not all files should be processed. The workflow filters for specific formats: PDF, PNG, JPEG, and JPG. This keeps random system files from clogging up the pipeline.
Step 3: Reading the File: Once a valid file is detected, N8N reads it from disk in raw format, ready to be processed.
Step 4: AI Transcription with Google Gemini: Here’s where it gets cool. I’m using Google Gemini 2.5 Pro for transcription. Why Google? Because it handles image-based PDFs way better than OpenAI or Claude in my testing. Those other services would error out when given handwritten PDFs, but Gemini just... works.
The AI prompt I use tells Gemini to:
Transcribe all handwriting word-for-word
Interpret any drawings or visual elements
Extract action items that need to be completed
Format everything with clear headings
This gives me three distinct sections in every transcription: the main content, visual interpretations, and a to-do list. It’s like having a personal assistant who actually understands my chicken scratch.
Step 5: Save to Text File: The AI output gets saved to plain text and saved to a file in the transcribed folder. Done and done.
One important note: if you have multi-page Supernote notes, the workflow combines all pages into a single image before transcription. This ensures the AI sees the entire context of your note, not just individual pages out of context.
Supernote .Note Conversion Workflow
This workflow is simpler but crucial for Supernote users. It watches the Supernote folder and does the following:
Step 1: Detect .note Files: When a new .note file appears (or an existing one is modified), the workflow triggers.
Step 2: Convert to PNG: Using the supernote-tool library (runs in a Docker container—more on that later), the workflow converts the proprietary .note format to a standard PNG image.
Step 3: Combine Multi-Page Notes: If your note has multiple pages, Supernote creates separate images with incrementing numbers (file_0.png, file_1.png, etc.). This step combines them into a single image. NOTE: This assumes my file naming scheme. It’ll have to be tweaked if used by others.
Step 4: Save to Transcription Folder: The final PNG gets saved to the main transcription folder, where the first workflow picks it up and does its AI magic.
This two-step process keeps things modular. The conversion workflow only cares about file formats, and the transcription workflow only cares about processing images and PDFs.
Capacities Integration Workflow
The third workflow is optional but super useful if you use Capacities (or any other note-taking app with an API). Here’s how it works:
Step 1: Webhook Trigger: I’ve set up a local webhook URL that I can call with a keyboard shortcut using Alfred on Mac. When triggered, the workflow runs.
Step 2: Get Current Date: The workflow grabs today’s date so I can use it later.
Step 3: Find Today’s TranscriptionsIt searches the transcribed folder for any files matching today’s date in either format, one for Boox files (YYYY-MM-DD) and one for Supernote files (YYYYMMDD)
Step 4: Extract Content: The workflow reads the content of those files.
Step 5: Post to Capacities: Using the Capacities API, it appends all transcriptions to my daily note, complete with timestamps and file names.
One quick tip: JSON can be finicky. I had to add some character replacement functions to handle newlines and special characters that would otherwise break the API call. But once you get it working, it’s bulletproof.
Docker Setup: Getting Technical (But Not Too Technical)
Okay, here’s the part that might sound intimidating, but I promise it’s not that bad. To run N8N and the Supernote conversion tools, you need Docker Desktop installed on your computer.
Docker is basically a way to run applications in isolated containers with all their dependencies bundled together. Think of it like a virtual machine, but way more lightweight.
The Docker Compose File
I use Docker Compose to run two containers:
N8N (the automation platform)
PostgreSQL (the database N8N uses to store workflow data)
Here’s what the setup includes:
Python for running the Supernote conversion library
The supernote-tool package for handling .note file conversions
Pillow (a Python image library) for combining multi-page notes
Volume mounts that connect your Mac folders to the Docker container
The volume mounts are critical—they let N8N access your Boox and Supernote folders from inside the container. Without them, the workflows can’t read or write files.
The Dockerfile
The custom Dockerfile installs all the necessary packages and sets up the environment. It starts with the official N8N image and layers in everything else we need.
If you’re new to Docker, I know this might sound like a lot. But once you have the files set up (which you can copy from my configuration), it’s just a matter of running one command to build and start everything up. After that, it runs in the background and does its thing.
NOTE: First time users of n8n will have additional onboarding setup that I don’t show here before you can create workflows.
Seeing It In Action: A Real-World Demo
Want to see this workflow in action? Check out the full video walkthrough where I demonstrate every step, show you the N8N configurations, and even create notes live to show you how fast it works.
Wrapping Up
Look, I get it. Handwriting feels good. There’s something about pen on paper (or stylus on e-ink) that just works for thinking and creativity. But in 2025, we also need our notes to be searchable, shareable, and integrated with our digital tools.
This automated workflow gives you the best of both worlds. Write naturally on your device, and let the automation handle the rest. No more manual grunt work, no more file management headaches, no more choosing between analog comfort and digital convenience.
Is there a bit of setup involved? Sure. But once it’s running, it’s absolutely magical. You write, you close your note, and boom—perfectly transcribed text with interpreted drawings and extracted action items appears on your computer.
Are you’re tired of the manual dance between handwriting and typing, give this workflow a shot. Customize it to your needs. And your future self will thank you.
If you have questions or run into issues setting this up, drop a comment. I’m always happy to help.
Happy automating!

