Driver FixRecommendedSound, Wi-Fi or graphics acting up? Check drivers firstFind missing or outdated drivers fast.Check DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run Scan×
Skip to content
CSS fonts

How to Match Google Chrome Faux Bold in wkhtmltopdf

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

To make wkhtmltopdf bold text resemble Google Chrome, first make both renderers use the same font files and explicit weight mapping. Chrome may synthesize a heavier face when a family has no suitable bold file; wkhtmltopdf may choose a different face, fail to load the web font, or use an older WebKit implementation. Declare regular and bold files explicitly, verify they are available to the PDF process, test synthesis settings in the exact wkhtmltopdf binary, and compare output from the same fixture.

There is no universal pixel-identical setting. The result depends on the font, operating system, Chrome version, wkhtmltopdf build, patched Qt WebKit, and fontconfig/FreeType environment.

What Chrome “faux bold” actually is

Faux bold is synthetic bold: an approximation used when the requested family does not contain a suitable designed bold face. A renderer can create the approximation by adding a thin stroke around glyphs. It is not necessarily the type designer’s real bold face, and different engines can synthesize different stroke widths and shapes.

CSS Fonts defines font-synthesis-weight. auto allows synthetic weight; none forbids it. The related font-synthesis shorthand can control synthetic faces more broadly. These declarations are fallback controls, not a promise that every Qt WebKit build implements them. A current WebKit feature table describes WebKit generally, while wkhtmltopdf bundles a particular, older Qt WebKit snapshot.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
MixPad Free Multitrack Recording Studio and Music Mixing Software [Download]
  • Create a mix using audio, music and voice tracks and recordings.
  • Customize your tracks with amazing effects and helpful editing tools.
  • Use tools like the Beat Maker and Midi Creator.
  • Work efficiently by using Bookmarks and tools like Effect Chain, which allow you to apply multiple effects at a time
  • Use one of the many other NCH multimedia applications that are integrated with MixPad.

1. Start with explicit font-face mapping

The most reliable way to reduce a Chrome–wkhtmltopdf difference is to stop leaving face selection implicit. Supply the same regular and bold files to both environments and give each file the weight it actually represents.

@font-face {
  font-family: "Report Sans";
  src: url("fonts/report-sans-regular.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: block;
}

@font-face {
  font-family: "Report Sans";
  src: url("fonts/report-sans-bold.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: block;
}

body {
  font-family: "Report Sans", sans-serif;
  font-weight: 400;
}

strong, b, .headline {
  font-weight: 700;
}

Do not label a regular file as 700 merely to make it darker. That asks the renderer to treat the wrong outlines as a bold face and can produce worse results than synthesis. If the family has variable-font axes, verify that the wkhtmltopdf build can consume that format; a static 700 file is usually easier to make deterministic in a legacy converter.

Use identical inputs

  • Copy the same font files, not just the same family name, into the browser and conversion environments.
  • Check file versions and hashes; a system-installed font can silently override a web font.
  • Use the same CSS, including the order of @font-face rules and the requested weight.
  • Ensure the PDF process can read local files or fetch the font URLs. A browser that has a cached font is not evidence that wkhtmltopdf loaded it.

2. Decide whether to permit synthetic weight

If you intentionally want a Chrome-like approximation because no bold file exists, test:

.chrome-like-weight {
  font-family: "Report Sans", sans-serif;
  font-weight: 700;
  font-synthesis-weight: auto;
}

.no-synthetic-weight {
  font-synthesis-weight: none;
}

auto permits synthesis when a suitable face is missing. none prevents synthetic bold, so the renderer must use an available face instead. Use none when a missing font should be obvious rather than silently approximated.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
WavePad Audio Editing Software - Professional Audio and Music Editor for Anyone [Download]
  • Full-featured professional audio and music editor that lets you record and edit music, voice and other audio recordings
  • Add effects like echo, amplification, noise reduction, normalize, equalizer, envelope, reverb, echo, reverse and more
  • Supports all popular audio formats including, wav, mp3, vox, gsm, wma, real audio, au, aif, flac, ogg and more
  • Sound editing functions include cut, copy, paste, delete, insert, silence, auto-trim and more
  • Integrated VST plugin support gives professionals access to thousands of additional tools and effects

For broader control, you may encounter:

.controlled-synthesis {
  font-synthesis: weight style;
}

.no-synthesis {
  font-synthesis: none;
}

Run a minimal fixture through the exact wkhtmltopdf binary before depending on these properties. Older Qt WebKit builds may ignore them. If the declaration is ignored, changing it cannot make that binary match Chrome; use a real bold file or change renderer.

3. Verify fonts in the conversion environment

wkhtmltopdf uses Qt WebKit and relies on the host fontconfig and FreeType stack. Its project documentation also notes that builds differ, particularly between packages with patched Qt and distribution-provided packages. The project’s stable series is 0.12.6, released June 11, 2020; the version string alone is not enough to identify every feature, because packaging and patches matter.

Checks before conversion

  1. Record wkhtmltopdf --version, the operating system, and whether the binary reports patched Qt.
  2. Confirm the font file exists at the path or URL used by the HTML process and that the conversion user has permission to read it.
  3. Check FONTCONFIG_PATH and the fontconfig configuration used by the service, container, or worker. A shell test and a production worker can resolve different font directories.
  4. Confirm the font format is supported by the installed stack. If a WOFF2 file fails, test a known-good WOFF or an installed system font to separate format problems from CSS problems.
  5. For remote fonts, verify DNS, TLS, proxy rules, and access from the conversion host. A browser on your laptop may have network access that the PDF worker does not.
  6. Wait for font loading before capture. If your page starts conversion while a web font is still downloading, the PDF can preserve fallback metrics or weight.

Make loading observable

Create a diagnostic HTML page containing the same short sentence in weights 400 and 700, plus a deliberately missing family. Render it repeatedly with the production command. Keep the HTML, CSS, font hashes, command line, and output PDF together. This distinguishes a missing resource from a synthesis difference.

4. Compare Chrome and wkhtmltopdf fairly

Use one fixture rather than comparing unrelated pages. Fix the viewport, device scale, page background, text, font files, and CSS. Capture the same sentence at regular, semibold, and bold weights. Record:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
DeskFX Free Audio Effects & Audio Enhancer Software [PC Download]
  • Transform audio playing via your speakers and headphones
  • Improve sound quality by adjusting it with effects
  • Take control over the sound playing through audio hardware
  • Chrome version and operating system.
  • wkhtmltopdf version, package source, patched-Qt status, and operating system.
  • Font file names, formats, versions, and hashes.
  • All relevant @font-face declarations and the requested CSS weights.
  • Whether the font was local, embedded, or fetched over the network.
  • PDF page size and any rasterization used for visual comparison.

If Chrome is bold but the PDF is normal, inspect loading and face mapping first. If both are bold but strokes differ, you are likely seeing renderer-specific synthesis or different text rasterization. If the requirement is visual identity rather than approximate weight, a real bold face is a better input than trying to imitate a synthetic stroke.

5. A repeatable diagnostic fixture

<!doctype html>
<meta charset="utf-8">
<style>
@font-face {
  font-family: "TestFamily";
  src: url("fonts/test-regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
}
@font-face {
  font-family: "TestFamily";
  src: url("fonts/test-bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
}
body { font-family: "TestFamily", sans-serif; font-size: 32px; }
.allow { font-weight: 700; font-synthesis-weight: auto; }
.forbid { font-weight: 700; font-synthesis-weight: none; }
</style>
<p>Regular: The quick brown fox 400</p>
<p class="allow">Allowed synthesis or bold file 700</p>
<p class="forbid">Synthesis forbidden 700</p>

Render this file with the same command and environment used by production. If the two 700 samples are identical, the binary may be selecting the supplied bold file. If they differ, the property is being honored or the available faces differ. If they are both indistinguishable from 400, the bold file probably did not load, the family declaration is wrong, or the engine ignored the CSS and found no bold face.

6. Choose the remedy that fits your requirement

Remedy When to choose it Trade-off
Use a real 700 font file You need predictable face selection and branding fidelity. Requires licensing, packaging, and a file that matches the design.
Allow synthesis with font-synthesis-weight: auto No bold face exists and an approximation is acceptable. Support and stroke appearance vary by wkhtmltopdf build.
Forbid synthesis with none You prefer a visible fallback over silently thickened glyphs. Text may appear regular or fall back to another family.
Adjust source design Small-size text becomes muddy or spacing changes after emboldening. Requires typography changes and another visual review.
Move to a modern PDF renderer Pixel-level fidelity or newer CSS/font behavior is a hard requirement. Migration, deployment, and output-difference work are required.

Issue reports for wkhtmltopdf 0.12.2.2 (2016) and 0.12.3 (2017) describe inconsistent Google Fonts weight selection and intermittent missing bold with remote Lato fonts. They are useful symptoms to compare with your case, not proof of a universal defect or a confirmed root cause.

Troubleshooting common failures

Chrome is bold; the PDF is regular

  • Cause: the 700 file was not loaded or is mapped to the wrong weight. Fix: use an explicit @font-face, test a local file, and inspect permissions and network access.
  • Cause: the conversion starts before the web font arrives. Fix: self-host the font or add a deterministic wait in the conversion workflow.
  • Cause: a system fallback family is selected. Fix: check fontconfig and remove competing family names from the test.

The PDF is darker than Chrome

  • Cause: wkhtmltopdf synthesized weight differently. Fix: supply the same designed bold face or test font-synthesis-weight: none.
  • Cause: the font files differ. Fix: compare hashes and versions, not only filenames.

The CSS property has no effect

The bundled Qt WebKit may not implement it. Confirm with the minimal fixture and exact binary. Do not assume a current WebKit support table describes wkhtmltopdf’s engine.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
MixPad Multitrack Recording Software for Sound Mixing and Music Production Free [Mac Download]
  • Mix an audio, music and voice tracks
  • Record single or multiple tracks simultaneously
  • Intuitive tools to split, trim, join, and many other editing features
  • Loaded with audio effects including EQ, compression, reverb, and more.
  • Load an audio file and export to all popular audio formats from studio quality wav to high compression formats

Only some machines fail

Compare package builds, operating-system fonts, fontconfig paths, container images, and environment variables. Pin the binary and font files in deployment rather than relying on host defaults.

Output changes after a package upgrade

Record the old and new version/build, patched-Qt status, FreeType/fontconfig versions, and font hashes. Re-run the fixture. Treat a changed PDF as a rendering change until those inputs are proven identical.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Or skip the browser setup

If your actual goal is dependable website images or PDFs rather than reproducing wkhtmltopdf’s typography engine, ScreenshotNeo makes one API request and returns a PNG, JPEG, WebP, or PDF. Before capture it accepts cookie/consent banners and removes more than 60 known consent platforms, newsletter popups, and chat widgets. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers identify the page verdict and billing status. Its MCP server exposes take_screenshot, get_page_info, and capture_pdf to Claude, Cursor, and other MCP clients.

See the complete parameter reference in the ScreenshotNeo documentation. A basic call is:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

Every feature is available on every plan, including full-page and lazy-image capture, CSS-selector element shots, device presets, custom viewport and retina scale, PDF paper and margin controls, custom CSS and JavaScript, clicks, waits, blocking rules, headers, cookies, user-agent, authorization, timezone, geolocation, transparent backgrounds, resizing, configurable caching, signed links, asynchronous webhooks, bulk capture of up to 100 URLs per call, usage data, and an OpenAPI specification. The parameter names used by other screenshot APIs also work.

Best Value
Express Schedule Free Employee Scheduling Software [PC/Mac Download]
  • Simple shift planning via an easy drag & drop interface
  • Add time-off, sick leave, break entries and holidays
  • Email schedules directly to your employees

The Free plan includes 1,000 screenshots each month with no card. Paid plans start at $5 for 3,000 shots; yearly billing provides two months free. Sign up for the free plan to try it without a card.

Cost, reliability, and operational notes

  • Self-hosted wkhtmltopdf has no per-capture API charge, but you own font licensing, binary pinning, worker capacity, security updates, and debugging.
  • Remote fonts and pages add network failure modes. Self-hosting the exact font files makes output more reproducible.
  • Cache behavior can hide a changed font during testing. Clear caches or use a versioned font URL when validating a fix.
  • Do not treat a visually close result as proof of identical glyph outlines. Keep a regression fixture and compare rendered PDFs after any browser, OS, font, or package change.

Frequently Asked Questions

Does wkhtmltopdf support font-synthesis?

Some builds may recognize the CSS property, but support depends on the bundled Qt WebKit snapshot. Test the exact binary with a minimal fixture; do not infer support from modern WebKit documentation.

Can CSS force wkhtmltopdf to use Chrome’s exact faux-bold stroke?

No. CSS can permit or forbid synthesis, but it does not standardize the renderer’s stroke geometry. A matching designed bold file or a different renderer is required for strict visual fidelity.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What should I pin for reproducible bold text?

Pin the wkhtmltopdf binary and patched-Qt build, operating-system image, fontconfig/FreeType stack, font files and hashes, CSS, and conversion command.

The Bottom Line

Use explicit, identical font files first; then test font-synthesis-weight in the exact wkhtmltopdf build. If the legacy Qt WebKit renderer still differs from Chrome, use a real bold face or migrate rather than expecting faux bold to be pixel-identical.

Quick Recap

Bestseller No. 1
MixPad Free Multitrack Recording Studio and Music Mixing Software [Download]
MixPad Free Multitrack Recording Studio and Music Mixing Software [Download]
Create a mix using audio, music and voice tracks and recordings.; Customize your tracks with amazing effects and helpful editing tools.
Bestseller No. 3
DeskFX Free Audio Effects & Audio Enhancer Software [PC Download]
DeskFX Free Audio Effects & Audio Enhancer Software [PC Download]
Transform audio playing via your speakers and headphones; Improve sound quality by adjusting it with effects
Bestseller No. 4
MixPad Multitrack Recording Software for Sound Mixing and Music Production Free [Mac Download]
MixPad Multitrack Recording Software for Sound Mixing and Music Production Free [Mac Download]
Mix an audio, music and voice tracks; Record single or multiple tracks simultaneously; Intuitive tools to split, trim, join, and many other editing features
Bestseller No. 5
Express Schedule Free Employee Scheduling Software [PC/Mac Download]
Express Schedule Free Employee Scheduling Software [PC/Mac Download]
Simple shift planning via an easy drag & drop interface; Add time-off, sick leave, break entries and holidays

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.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Read next

Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.