Font Presence Check Guide
A reference for the DeskTest.net Font Presence Check. It confirms, right in the browser, that the fonts a vendor app or a check printer needs are actually installed on this PC - the everyday office fonts, and the specialist check-printing fonts (MICR E-13B and a 3-of-9 barcode font) whose absence quietly turns a whole check batch into rejects. No font file or system data leaves the machine.
Open the Font Presence Check →
What does Font Presence Check do?
An application can only print with a font that is actually installed on the machine. When a required font is missing, the operating system silently substitutes a different one. For ordinary documents that just looks a little off. For a check or a barcode it is a real failure: the magnetic MICR line at the bottom of a check prints in the wrong glyph shapes, or a barcode prints as plain digits, and the batch is rejected downstream.
This tool checks a curated list of fonts and reports each one as Present or Missing, in two groups:
- Common office fonts - Arial, Calibri, Times New Roman, Consolas, and Segoe UI. These back most business documents and vendor app interfaces.
- Check and label printing fonts - MICR E-13B (the check MICR band) and a 3-of-9 / Code 39 barcode font. These are the ones whose absence ruins a print run.
How to run it
- Open the tool on the workstation that will do the printing. Font installs are per-machine, so a check that passes on your laptop says nothing about the front-desk PC. Run it where the checks or labels are actually printed.
- Click "Run Font Check". Detection is instant and needs no permission and no file. You will see three steps complete: browser support, office fonts, and check-printing fonts.
- Read the verdict at the top, and expand the office and check rows to see the per-font table.
- If anything is missing, use Copy Diagnostic Report or Send to your IT to hand the exact list to whoever installs fonts, then rerun after they install it.
Reading the results and verdict
Each step row expands to a table listing its fonts with a Present or Missing pill and, for a present font, how it was detected (canvas width measurement, the Font Loading API, or - if you opted in - local-font access) and the exact family name it matched.
The verdict panel at the top gives the bottom line:
| Verdict | Meaning |
|---|---|
| All required fonts are installed | Every office and check-printing font this tool looks for is present. This PC is ready to print. |
| A check-printing font is missing | MICR E-13B or the Code 39 barcode font is not installed. Do not run a check or label batch - it will print wrong and be rejected. Install the font first. |
| Some office fonts are missing | Check fonts are fine, so printing is not blocked, but a document or app that relies on a missing office font will render with a substitute. |
Why check-printing fonts matter
Check printing is unusually unforgiving about fonts.
MICR E-13B is the font used for the line of account and routing numbers along the bottom of a check. It is a strict standard: each character has a defined shape and stroke that magnetic and optical readers at the bank expect. If the E-13B font is not installed, the printing app substitutes an ordinary font, the MICR line prints in the wrong glyphs, and the reader cannot parse it - so the item is rejected and has to be reprinted or handled manually. A missing MICR font can silently spoil an entire batch before anyone notices.
3-of-9 (Code 39) is a common barcode font used for batch tickets, document separators, and labels. Without the font installed, the value that should render as a scannable barcode instead prints as the plain characters between the asterisks, and no scanner can read it.
How detection works (and its limits)
The primary method needs no permission and works in every modern browser. The tool draws a fixed probe string on an off-screen canvas in three generic fallback families - monospace, serif, and sans-serif - and records the pixel width of each. Then for a target font it draws the same string asking for "Target", <generic>. If the target is installed, the browser uses it and the measured width differs from that generic's own width. If it is not installed, the text falls back to the generic and the width is identical.
Testing against all three generics is deliberate. On Windows, for example, the generic sans-serif maps to Arial, so measuring Arial against sans-serif alone would show no difference and look like a false miss - but Arial still differs from serif, so the tool correctly reports it present. A font is counted present if it differs from at least one generic.
As a second confirming signal the tool also calls document.fonts.check() (the CSS Font Loading API). It is used only to add a positive result, never to override a width measurement.
Limits to be aware of
- It detects presence, not correctness. The tool confirms a font by that name is installed and renders. It cannot verify a MICR font actually meets the E-13B magnetic spec. Always print and scan one test item before a batch.
- Name variations. The same check font ships under different family names by vendor (for example MICR as "MICR", "MICR E13B", "GnuMICR", or "IDAutomationMICR"). The tool checks several known aliases per font, but an unusual private name could read as Missing even when a suitable font is installed. The report lists the exact name matched so you can confirm.
- Web fonts vs system fonts. This tool cares about fonts installed on the operating system, which is what desktop apps and printers use. A font loaded only inside a web page does not count.
The optional "List installed fonts" button
On Chromium-based browsers (Chrome and Edge, version 103 and up) the tool offers an optional List installed fonts button after a scan. It uses the Local Font Access API to read the exact list of installed fonts, which lets it confirm matches by exact name rather than by measurement.
This is strictly opt-in. Clicking it triggers a browser permission prompt; nothing happens until you allow it, and even then the list is only used locally to refine the results shown on the page - it is never sent anywhere. If your browser does not support the API the button does not appear, and if you decline the prompt the measured results still stand. The default scan never calls it, so the tool works with zero prompts out of the box.
For IT admins: installing a missing font
When the tool reports a font Missing on a printing workstation, here is the fix.
- Get the correct font file. For office fonts, the
.ttf/.otffrom the OS or Office media. For MICR and barcode fonts, the licensed file from the vendor of your check or label software - not a random download. - Install for all users. On Windows, right-click the font file and choose Install for all users (installing "for me" only puts it in the current user's profile, so a shared or service account that runs the print job will not see it). This copies it into
C:\Windows\Fonts. - Deploy at scale. For a fleet, push the font via Group Policy Preferences, Intune, or your management tool, and drop it into
%windir%\Fontswith the matching registry entry underHKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts. Do it on every workstation that prints, not just the one you tested. - Restart the app. Applications enumerate fonts at launch, so close and reopen the printing app (or the machine) after installing.
- Verify before the batch. Rerun this check to confirm Present, then print one test check or label and confirm the MICR line or barcode actually scans. Presence is necessary but not sufficient - a physical test is the real proof.
Related
- Font Presence Check - the tool itself
- Check Scanner Test Guide - the other half of a check workflow: confirming the scanner works
- Printer Test - confirm the workstation can print at all
- Browser Test Guide - what APIs your browser supports
- About DeskTest.net
- DeskTest.net home
Elsewhere on the web:
- MDN: Local Font Access API - the permission-gated API behind the optional exact-match button.
- MDN: measureText - the canvas method the default, permission-free detection relies on.