A tool that scans Microsoft Office files (Word, PowerPoint, Excel) to detect which fonts are used and checks if they are available on your local system. Available as both a command-line tool and a graphical application.
Before using this tool, the ideal solution is to have the document creator embed custom fonts directly into the Office file. This ensures the document displays correctly on any computer without requiring font installation.
- In Microsoft Office (Word, PowerPoint, Excel), go to File → Options → Save
- Check "Embed fonts in the file"
- Choose embedding options:
- Embed only characters used (smaller file size)
- Embed all characters (allows editing with the font)
Benefits of embedding fonts:
- Document displays correctly on any computer
- No need to install or replace fonts
- Preserves original design intent
- Learn more: Microsoft's guide to embedding custom fonts
Use this scanner when:
- The original computer where the file was created is not available
- The original author cannot be contacted to re-save with embedded fonts
- You receive a file without embedded fonts
- You need to identify which fonts are missing
- You want to replace missing fonts with available alternatives
- ✅ Scans modern Office formats:
.docx,.pptx,.xlsx - ✅ Scans legacy Office formats:
.doc,.ppt,.xls - ✅ Checks system fonts for availability
- ✅ Intelligent font matching - automatically detects font families regardless of style (Bold, Italic, etc.)
- ✅ Replace missing fonts with available alternatives
- ✅ Refresh system fonts - detect newly installed fonts without restarting
- ✅ Graphical User Interface (GUI) for easy use
- ✅ Standalone executable - no Python installation required
- ✅ Cross-platform support (Windows, macOS, Linux)
- ✅ Automatic file backup before font replacement
For users without Python:
- Download
OfficeFontScanner.exefrom the releases - Double-click to launch the GUI application
- Click "Browse..." to select your Office file
- Click "Scan Fonts" to analyze the document
- Replace missing fonts if needed
No Python installation required!
Make sure you have Python 3.6 or higher installed on your system.
Open PowerShell or Command Prompt in this folder and run:
pip install -r requirements.txtThis will install the olefile library needed for legacy Office file support.
Launch the graphical interface:
python font_scanner_gui.pyFeatures:
- Browse and select files visually
- View scan results in a formatted window
- Replace missing fonts with a dropdown selector
- Refresh system fonts button - detect newly installed fonts instantly
- Automatic font refresh - updates font list before replacement
- Real-time font count display
- Automatic backup creation
python font_scanner.py <path_to_office_file>Scan a PowerPoint presentation:
python font_scanner.py C:\Documents\presentation.pptxScan a Word document:
python font_scanner.py "C:\My Documents\report.docx"Scan an Excel spreadsheet:
python font_scanner.py data.xlsxScan a legacy PowerPoint file:
python font_scanner.py old_presentation.pptThe script will display:
- Total number of fonts found in the file
- List of fonts that are available on your system (marked with ✓)
- List of fonts that are missing from your system (marked with ✗)
- Option to replace missing fonts with available alternatives
Scanning: presentation.pptx
======================================================================
Checking system fonts...
Total fonts found: 4
Available on system: 3
Missing from system: 1
✓ AVAILABLE FONTS:
• Arial
• Calibri
• Times New Roman
✗ MISSING FONTS:
• CustomFont Pro
======================================================================
Would you like to replace missing fonts? (y/n): y
For each missing font, enter a replacement (or press Enter to skip):
Replace 'CustomFont Pro' with: Arial
======================================================================
Font Replacement Summary:
CustomFont Pro → Arial
Proceed with replacement? (y/n): y
Backup created: presentation.pptx.backup
✓ Font replacement complete! Modified 3 file(s) within the document.
Original backed up as: presentation.pptx.backup
.docx- Microsoft Word.pptx- Microsoft PowerPoint.xlsx- Microsoft Excel
.doc- Microsoft Word (requires olefile).ppt- Microsoft PowerPoint (requires olefile).xls- Microsoft Excel (requires olefile)
If you see this error when scanning legacy files, install the requirements:
pip install -r requirements.txtMake sure to provide the full path to the file or run the script from the same directory as your Office file.
After installing new fonts on your system:
- Click the "Refresh System Fonts" button in the GUI
- Or simply click "Replace Missing Fonts" - it automatically refreshes
- The newly installed fonts should now appear in the dropdown
Note: The app reads fonts from the Windows registry. If fonts still don't appear:
- Make sure fonts are installed "for all users" (not just current user)
- Try restarting the application
- Verify fonts are properly installed in Windows Settings → Fonts
If you installed a font like "Montserrat Bold" but the document requires "Montserrat":
- This is now automatically handled - the app detects font families regardless of style variants
- Click "Refresh System Fonts" to reload the font list
- Any style of a font family (Regular, Bold, Italic, etc.) will match the family name
This can happen if:
- The file uses only default/embedded fonts
- The file is corrupted
- The file format is not supported
- Windows: Reads fonts from Windows Registry
- macOS: Reads fonts from system font directories
- Linux: Reads fonts from common font directories
To create a standalone Windows executable that users can run without Python installed:
- Install all requirements:
pip install -r requirements.txtThis installs:
olefile- for legacy Office file supportpyinstaller- for building executables
pyinstaller font_scanner_gui.specpyinstaller --onefile --windowed --name OfficeFontScanner --hidden-import olefile font_scanner_gui.py- The executable will be created in the
distfolder - File:
dist/OfficeFontScanner.exe - Size: Approximately 15-20MB (includes Python runtime and all dependencies)
Simply distribute the OfficeFontScanner.exe file from the dist folder. Users can:
- Run it directly without installing Python
- Copy it to any location on their computer
- Create a desktop shortcut for easy access
- Get or create a
.icofile (256x256 or 128x128 recommended) - Save it as
icon.icoin the project folder - Edit
font_scanner_gui.specand change:to:icon=None,
icon='icon.ico',
- Rebuild:
pyinstaller font_scanner_gui.spec
- First launch may be slower (Windows security scanning)
- Antivirus software may flag PyInstaller executables initially (this is normal)
- For production distribution, consider code signing the executable
- See
BUILD.mdfor more detailed instructions
- Python 3.6+
- tkinter (included with Python)
- olefile 0.46+ (for legacy Office file support)
- pyinstaller 5.0+ (for building executables)
Free to use and modify.