Activation
Customize the activation shortcut in PowerToys Settings > Text Extractor.
OCR Technology
Windows OCR Engine
Text Extractor uses Windows’ built-in OCR engine (Windows.Media.Ocr) for text recognition. From source/src/modules/PowerOCR/PowerOCR/Helpers/OcrExtensions.cs:90-106:
Supported Languages
Text Extractor supports all languages installed in Windows:Language Support
Language Support
OCR works with:
- Latin scripts: English, Spanish, French, German, Italian, Portuguese, etc.
- Cyrillic scripts: Russian, Ukrainian, Serbian, Bulgarian, etc.
- Asian languages: Chinese (Simplified & Traditional), Japanese, Korean
- Other scripts: Arabic, Hebrew, Greek, Thai, etc.
/src/modules/PowerOCR/PowerOCR/Helpers/LanguageHelper.cs
Features
Text Recognition Modes
- Standard OCR
- Table Mode
Default mode extracts text line-by-line:
- Preserves line breaks
- Maintains text order
- Handles multi-line paragraphs
- Good for most text extraction
Language-Aware Text Processing
Text Extractor intelligently handles different language types:Space-Joining Languages
Space-Joining Languages
From source
/src/modules/PowerOCR/PowerOCR/Helpers/OcrExtensions.cs:25-64:Space-joining languages (English, Spanish, etc.):- Automatically add spaces between words
- Preserve word boundaries
- Handle punctuation correctly
- No automatic spacing between characters
- Detect when to insert spaces (for mixed content)
- Handle CJK characters as single-character words
Image Scaling
Automatic image scaling for better OCR accuracy:/src/modules/PowerOCR/PowerOCR/Helpers/OcrExtensions.cs:75-82
Use Cases
Copy Text from Images
Extract text from screenshots, photos, scanned documents, or any image with text.
Extract from Videos
Capture text from paused video frames, subtitles, or video overlays.
Legacy Applications
Copy text from applications that don’t support text selection or copying.
Error Messages
Capture and share error messages from dialog boxes or system alerts.
Development Workflows
Development Workflows
Extract Code from Screenshots:
- Copy code from tutorial screenshots
- Extract code from Stack Overflow images
- Capture configuration examples from documentation
- Get code from video tutorials
Data Entry
Data Entry
Digitize Printed/Handwritten Text:
- Extract text from scanned forms
- Digitize business cards
- Copy data from PDF images
- Extract information from screenshots
Research & Documentation
Research & Documentation
Capture Reference Information:
- Extract quotes from e-books (images)
- Copy data from research papers (PDFs)
- Capture table data from reports
- Save information from presentations
Accessibility
Accessibility
Text-to-Speech Support:
- Extract text for screen readers
- Copy text from inaccessible interfaces
- Get text from images for translation
- Support users with visual impairments
Translation
Translation
Multilingual Text Extraction:
- Extract foreign language text from images
- Copy text for translation services
- Capture text from international websites
- Get text from foreign language videos
Configuration
Activation Shortcut
Change Shortcut
Click activation shortcut field and press your desired key combination (default:
Win + Shift + T).OCR Language
Select the language for text recognition:Add Languages
Install additional OCR languages in Windows Settings if needed:Settings > Time & Language > Language > Add a language
Display Options
- Cursor style during selection
- Overlay color and opacity
- Selection border appearance
- Result preview window
Advanced Features
Table Recognition
Extract structured table data as formatted text:/src/modules/PowerOCR/PowerOCR/Helpers/OcrExtensions.cs:66-88
DPI-Aware Selection
Text Extractor is DPI-aware for accurate region selection on high-DPI displays:Image Processing Helpers
Utility functions for image manipulation: Implementation:/src/modules/PowerOCR/PowerOCR/Helpers/ImageMethods.cs
- Bitmap scaling and uniform resizing
- Region capture from screen
- DPI-aware coordinate conversion
- Image format conversion
Cursor Management
During text selection, cursor is confined to prevent accidental clicks outside overlay: Implementation:/src/modules/PowerOCR/PowerOCR/Helpers/CursorClipper.cs
String Processing
Post-processing for extracted text: Implementation:/src/modules/PowerOCR/PowerOCR/Helpers/StringHelpers.cs
- Whitespace normalization
- Line break handling
- Special character cleanup
- Format preservation
OCR Accuracy Tips
Improve Recognition Quality
Improve Recognition Quality
Best Practices:
- Select tightly around text - Minimize background and non-text areas
- Use high-resolution sources - Zoom in or use higher quality images
- Ensure good contrast - Dark text on light background (or vice versa)
- Avoid distorted text - Skewed or rotated text reduces accuracy
- Select correct language - Match OCR language to text language
- Clean text areas - Remove visual noise or overlapping elements
Handle Difficult Text
Handle Difficult Text
Challenging Scenarios:
- Small text: Zoom in or scale up the window before capturing
- Stylized fonts: Simple fonts work better than decorative ones
- Backgrounds: Solid backgrounds better than textured/busy ones
- Mixed languages: Extract each language separately with correct language setting
- Handwriting: Printed text works better; handwriting recognition is limited
Post-Processing**
Post-Processing**
After extraction:
- Review extracted text for errors
- Correct misrecognized characters (common: O/0, I/l/1, S/5)
- Fix spacing issues in mixed-language text
- Preserve original formatting where needed
- Use spell-check to catch obvious errors
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
Win + Shift + T | Activate Text Extractor (default) |
Esc | Cancel text extraction |
Click + Drag | Select region to extract |
Ctrl + V | Paste extracted text |
Troubleshooting
Text Extractor Not Activating
Text Extractor Not Activating
Checklist:
- Ensure Text Extractor is enabled in PowerToys Settings
- Verify activation shortcut isn’t conflicting
- Check PowerToys is running
- Restart PowerToys if needed
Win + Shift + T - choose different shortcut.Poor OCR Accuracy
Poor OCR Accuracy
Troubleshooting:
- Verify correct language is selected
- Check text is clear and readable
- Ensure sufficient contrast
- Try zooming in on text before extraction
- Avoid selecting too much non-text area
- Check Windows OCR language pack is installed
No Text Detected
No Text Detected
Possible Causes:
- Selected area contains no text
- Text is too small or blurry
- Wrong language selected
- Image contrast too low
- Text is actually rendered graphics (not characters)
Clipboard Not Updated
Clipboard Not Updated
Issues:
- Another application may be blocking clipboard
- Clipboard manager interference
- No text was detected (check extraction was successful)
Language Not Available
Language Not Available
Missing Language Pack:
- Open Windows Settings
- Go to Time & Language > Language
- Click “Add a language”
- Select desired language
- Check “Optical character recognition” in optional features
- Install language pack
- Restart Text Extractor
Performance Considerations
OCR Performance
OCR Performance
Processing Time:
- Small text regions: < 1 second
- Medium regions: 1-3 seconds
- Large regions: 3-10 seconds
- Very large regions: May timeout or fail
- Select only necessary text areas
- Break large extractions into smaller regions
- Be patient with complex multi-language text
- Close other heavy applications during large extractions
Accessibility Features
Accessibility Support
Accessibility Support
Text Extractor improves accessibility:
- Screen Reader Compatible: Extracted text can be read by screen readers
- Keyboard Navigation: Full keyboard control during selection
- High Contrast Support: Works with Windows high contrast themes
- Magnification: Works with Windows Magnifier
- Text-to-Speech: Extract text for speech synthesis
Source Code
Location:/src/modules/PowerOCR/PowerOCR/
- OCR extensions:
Helpers/OcrExtensions.cs - Language support:
Helpers/LanguageHelper.cs - Image processing:
Helpers/ImageMethods.cs - String utilities:
Helpers/StringHelpers.cs - Cursor management:
Helpers/CursorClipper.cs - Throttled actions:
Helpers/ThrottledActionInvoker.cs - OS interop:
Helpers/OSInterop.cs - Main application:
App.xaml.cs