Select and copy text directly on the page
The text pane is gone: recognised text is selected on the page image like in a PDF viewer (drag in reading order, double-click a word, triple-click a line, shift-click to extend, Ctrl+A), copied with Ctrl+C or the context menu, and previewed in the status bar; on X11/Wayland it also goes to the primary selection. Middle-drag or Space+drag pans. OCR asks RapidOCR for per-character boxes and keeps each line's character boundaries (Line.edges), with Line.locate/quad/word for hit testing and drawing; lines whose boxes don't match the text fall back to even spacing. Errors are logged to the terminal with their traceback, and Ctrl+C in the terminal closes the app (restoring mouse mode), dismissing any open dialog. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -22,8 +22,9 @@ Linux driver tools for the Hama myScan (00052343) scanner mouse, a Dacuda design
|
||||
- `tools/app.py` — desktop app (Qt/PySide6; Linux, Windows, macOS): live camera and page view while scanning
|
||||
(Start/Stop or the scan button, F5), then OCR of the finished page with RapidOCR (`myscan/ocr.py`;
|
||||
multilingual PP-OCRv6 models bundled in the wheel, works offline). Recognised lines are outlined on the page by
|
||||
confidence; click one to select its text, and the cursor in the text highlights its line. The text is editable
|
||||
and can be copied or saved as .txt. `python tools/app.py [image]` also opens and reads existing images (Open, or
|
||||
confidence, and the text is selected right on the page like in a PDF viewer: drag (in reading order across
|
||||
lines), double-click a word, triple-click a line, shift-click to extend, Ctrl+A; Ctrl+C or right-click copies.
|
||||
Middle-drag or Space+drag pans, the wheel zooms. Copy all and Save text (.txt) take the whole page. `python tools/app.py [image]` also opens and reads existing images (Open, or
|
||||
drag and drop), which is all it does on machines without the mouse
|
||||
- `myscan/scanner.py` — the scan loop shared by `scan.py` and the app (finds the mouse's `/dev/videoN` itself)
|
||||
- `myscan/live.py`, `myscan/webview.py` — the live preview and its browser viewer (standard library only)
|
||||
|
||||
Reference in New Issue
Block a user