Recommended Free Tools
When fonts are missing, substituted, or rendered incorrectly in a PDF from headless Chrome, check the environment that generated the PDF first. Chrome uses the fonts and supporting libraries available to its host or container; fonts installed on your laptop are not automatically present in Docker, CI, or a serverless runtime. Reproduce the problem in the production image, verify font coverage and browser dependencies, then confirm any web fonts have loaded before printing.
Why headless Chrome PDFs have font problems
PDF generation happens in the browser’s actual runtime. A page that renders correctly on a developer workstation may look different when its PDF is produced by Linux in a container or deployment image with a different set of fonts and libraries. Puppeteer’s deployment guidance calls out missing Linux dependencies and additional language fonts as deployment concerns (Puppeteer troubleshooting).
When the requested font is unavailable, Chromium can substitute another installed font. Chromium’s Linux PDF font helper maps familiar names such as Helvetica and Times to candidate fonts and can ask fontconfig for substitutions (Chromium PDF font matching source). A substitute may change character coverage, line breaks, spacing, and the overall appearance.
There is no single fix that can be selected without knowing the operating system or image, browser and Puppeteer versions, font source, PDF options, and which characters fail. Use the following sequence to isolate the cause in the environment that creates the PDF.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problems#1 Best Overall
- BEST FOR SMALL BUSINESSES – Engineered for extraordinary productivity, the Brother DCP-L2640DW Monochrome (Black & White) 3-in-1 combines laser printer, scanner, copier in one compact footprint and delivers high-quality black & white prints
- FAST PRINTER WITH EFFICIENT SCANNING – Produces documents quickly with print speeds up to 36 ppm(2) and scan speeds up to 23.6/7.9 ipm(3) (black/color). A 50-page auto document feeder(4) allows for convenient, time saving multi-page scanning and copying
- FLEXIBLE CONNECTION OPTIONS – Easily navigate the changing demands of your business with secure multi-device connectivity via built-in dual-band wireless (2.4GHz / 5GHz) and Ethernet. Or connect locally to a single computer via USB interface
- BROTHER MOBILE CONNECT APP – Print, scan, and manage your wireless printer anytime, from almost anywhere from your mobile device. Order Brother Genuine Supplies, track toner usage, and complete more work on-the-go(5)
- CHOOSE BROTHER GENUINE TONER – When it’s time to replace your toner, be sure to choose Brother Genuine TN830 or TN830XL replacement toner. And with Refresh EZ Print Subscription Service, you’ll never worry about running out of toner again and you’ll enjoy savings of up to 50%(6) on Brother Genuine Toner. Get started with Refresh today with a Free Trial(1)
Diagnose the PDF in the runtime that generated it
1. Reproduce the failing output
Run a minimal version of the failing page using the same container image or host, Chrome executable, browser build, font packages, HTML, and PDF settings as production. Include representative characters—not just Latin letters—if the problem affects a particular language or symbol set. This separates environment-wide font problems from issues limited to one template or page.
Record whether the font is absent, replaced by a visibly different family, missing only for certain characters, or merely laid out differently. Also note whether the text appears in the page before printing but not in the PDF. These distinctions help direct the next check; they do not by themselves identify a root cause.
2. Check Linux browser dependencies and installed fonts
Puppeteer’s troubleshooting guide documents this command for checking unresolved shared libraries on Linux:
Rank #2
- BEST FOR HOMES & HOME OFFICES – Engineered for consistent, premium print quality, the Brother HL-L2405W Monochrome (Black & White) Laser Printer delivers sharp, crisp prints at an affordable price. Prints one-sided documents at speeds up to 30ppm(2)
- COMPACT, CONNECTED PRINTER – Flexible connection options make this an ideal printer for home use and at-home offices. Securely connect to multiple devices with built-in dual-band wireless (2.4GHz/5GHz) or locally to a single computer via USB interface
- BROTHER MOBILE CONNECT APP – Manage your printer remotely and print from your mobile device anytime, from almost anywhere. Order Brother Genuine Supplies, track toner usage, and complete more work on-the-go(3)
- VERSATILE PAPER HANDLING – Enjoy seamless, reliable everyday printing with the 250-sheet paper tray(4) and a manual feed slot that enables printing on envelopes and specialty pape
- BROTHER IS AT YOUR SIDE – Backed by Brother with a 1-year limited warranty and free online, call, or live chat support for the life of your printer
ldd chrome | grep not
Run it against the actual Chrome executable in the production runtime. If it reports missing libraries, install the required dependencies in the image and rebuild it. The executable may have a different path in your deployment, so use the path for that environment.
Separately verify that the intended font files are installed and that they contain glyphs for the scripts used in the document. A font can be present yet lack the characters you need, which can produce partial fallback even when other text looks correct.
3. Add the needed packages to the deployment image
Install required system libraries and font packages at image-build time, rather than relying on fonts present on a developer machine. Puppeteer’s Docker example includes font packages for multiple scripts; the right packages depend on the base distribution and the document’s glyph requirements. The guide specifically warns that Chinese, Japanese, or Korean rendering may require additional font files (Puppeteer troubleshooting).
Rank #3
- FAST PRINT SPEEDS: Print up to 19 pages per minute.
- COMPACT DESIGN: Space-saving, compact design fits anywhere in your home, school or small office.
- WIRELESS CONNECTIVITY: Print from almost anywhere in your workspace using your compatible mobile device.
- PAPER CAPACITY: Up to 150 sheets.
- SUSTAINABILITY: Uses less than 2 watts in Energy Saver mode.
After changing the image, rebuild and regenerate the PDF inside that image. Keep Puppeteer and its browser build aligned using the current compatibility guidance for the versions in your deployment. Old issue reports or historical snippets should not be treated as current version recommendations.
4. Determine whether a web font is late or unavailable
If the page uses a font loaded over the network, confirm that the runtime can reach the font URL and that the font has loaded before PDF capture. Check the URL, response, CSS family name, and any asynchronous rendering that affects when the page is ready. A capture that works only after an added delay points toward readiness or network investigation; delay alone is not a font installation fix.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Chrome’s headless command-line interface provides --timeout and --virtual-time-budget timing controls, and documents --print-to-pdf for writing a PDF (Chrome Headless documentation). These controls can help investigate capture timing, but they do not prove that a particular web font loaded. Puppeteer applications should use readiness checks appropriate to their own page and workflow rather than assuming those CLI flags are universal Puppeteer settings.
Rank #4
- BEST FOR HOME OFFICES & SMALL TEAMS – Engineered for consistent, premium print quality, the Brother HL-L2460DW Monochrome (Black & White) Laser Printer produces documents that are clear, crisp, and easy to review and share, all at an affordable price
- COMPACT, CONNECTED, EXCEPTIONALLY EFFICIENT– Connect with built-in dual-band wireless (2.4GHz/5GHz), Ethernet, or to a single computer via USB interface. Prints at speeds up to 36ppm(2), plus automatic duplex printing saves time and reduces paper waste
- BROTHER MOBILE CONNECT APP – Manage your wireless printer remotely and print from your mobile device anytime, from almost anywhere. Order Brother Genuine Supplies, track toner usage, and complete more work on-the-go(3)
- VERSATILE PAPER HANDLING – Tackle high-volume black & white printing with the 250-sheet capacity paper tray.(4) The manual feed slot enables printing on envelopes and specialty paper
- BROTHER IS AT YOUR SIDE – Backed by Brother with a 1-year limited warranty and free online, call, or live chat support for the life of your printer
5. Isolate header and footer templates
If body text is correct but a font fails only in PDF headers or footers, investigate the print template separately. Puppeteer issue #10407 records a custom-font report involving header and footer templates and was closed as not planned. It is a report about a particular case, not proof that all current Puppeteer versions have a general template limitation or that a specific workaround is supported.
Choose how to provide the font
| Approach | Useful when | Trade-offs to check |
|---|---|---|
| Install system fonts in the runtime image | The application relies on installed families or needs broad script coverage. | Package availability varies by distribution. Consider image size and font licensing or redistribution terms. |
| Bundle or serve a web font with the application | You need consistent typography across environments and can make the font available to the page. | The page must be able to fetch and load it before printing. Confirm readiness in the actual workflow; no single loading API or guarantee applies to every Puppeteer version. |
| Accept a system substitute | Exact appearance and font metrics are not essential. | The substitute depends on fonts installed in the runtime. Check glyph coverage and resulting layout in the PDF. |
Compare the options against the scripts and glyphs in your content, font availability in production, reproducibility across image builds, page-load reliability, licensing, and whether exact metrics matter. If text wraps differently after a font fix, review page breaks and layout as well as font appearance: a family change can alter the amount of text that fits on each line.
Use a repeatable PDF check
- Capture a baseline: save the failing PDF and note the deployment image, browser build, font source, and PDF settings that produced it.
- Make a minimal reproduction: use the failing family and representative text in a small page, keeping the same runtime and print path.
- Verify runtime resources: check the actual Chrome executable with
ldd chrome | grep noton Linux, then confirm the necessary font files and script coverage. - Change one input: add missing libraries or fonts to the image, or address web-font loading; avoid changing several causes at once.
- Rebuild and print again: use the same production image and settings, then compare character coverage, family appearance, wrapping, and page breaks.
- Keep a regression sample: retain representative text that exercises the affected scripts so later image or browser changes can be checked against it.
Common symptoms and what to check
- The PDF uses a visibly different font everywhere: check whether the requested family is installed or successfully loaded, then inspect the available substitution fonts.
- Only some characters are missing or replaced: check glyph coverage for the affected script and install a font package that covers it. CJK text may need additional files in the image.
- The web page looks right but the PDF does not: confirm that the same runtime and browser produced both views, and verify web-font readiness at print time.
- The issue appears only in Docker or CI: compare that image’s dependencies and fonts with the working host; do not assume a host-installed font exists in the container.
- Only header or footer text is affected: isolate the PDF template path from body rendering and assess whether the behavior matches your current Puppeteer version.
- Text is correct but line breaks differ: compare the actual family and metrics used in the PDF, then inspect print CSS and page layout.
Or skip the browser setup
If your goal is a website screenshot rather than a Puppeteer-generated PDF, ScreenshotNeo offers a screenshot API and MCP server. A GET request can return PNG, JPEG, WebP, or PDF. Here is the one-call cURL example; see the API documentation for the available parameters.
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteBest Value
- HP LaserJet M209dw Wireless Printer, Print, Fast speeds, Easy setup, Mobile printing, Best-for-small teams, Instant Ink eligible
- Perfect for small teams printing black & white documents and reports, plus auto two-sided printing. Perfect for 1-5 people
- FASTEST TWO-SIDED PRINTING IN ITS CLASS – Up to 30 black-and-white pages per minute single-sided, u up to 19 black-and-white images per minute two-sided printing
- DUAL-BAND WI-FI WITH SELF-RESET – Automatically detects and resolves connectivity issues
- STRONG SECURITY – Built-in security features help protect your printer from potential attacks
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
ScreenshotNeo removes cookie and consent banners, newsletter popups, and chat widgets before the capture; each cleanup step can be turned off. Bot checks, blank pages, failed loads, timeouts, and cache hits are not billed, and the response includes X-Page-Verdict and X-Billed headers. Its MCP server includes take_screenshot, get_page_info, and capture_pdf for AI agents. The Free plan includes 1,000 shots per month with no card; paid plans start at $5 for 3,000 shots. Sign up for 1,000 free screenshots a month with no card.
Frequently Asked Questions
Why does a PDF use a different font from the webpage?
The PDF renderer may be running where the requested font is unavailable, or the page’s web font may not have loaded before capture. Check the generating runtime and font readiness.
Can –virtual-time-budget fix a missing font in Puppeteer?
It is a Chrome headless CLI timing control, not a font installation fix or a universal Puppeteer recipe. Use it only when investigating time-dependent page behavior.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

