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

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

Short answer: iText’s pdfHTML supports a substantial, document-oriented subset of CSS, including core backgrounds, borders, sizing, text, flexbox, Grid, lists, tables, columns, selectors, and paged-media rules. It is not a full browser engine: several visual effects, interactive features, and advanced layout properties are unsupported or only partial. The current official matrix describes pdfHTML 6.3.3 with iText Core 9.7.0, so use it as a current product-family guide—not as a guarantee for every older iText 7/pdfHTML artifact.

Start with the official CSS and HTML feature matrix, then test the exact Java or .NET version in your application against the generated PDF.

What the support matrix actually covers

The matrix is property-by-property and module-by-module. “Supported” means the property is implemented, not that every value, nesting pattern, or browser layout will paginate identically. “Unsupported” means you should not rely on it in production output. Partial or limited areas need a rendered-PDF test, especially when content spans pages.

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

The matrix’s scope is pdfHTML 6.3.3 paired with iText Core 9.7.0. pdfHTML 6.3.3 was released on July 8, 2026; its notes mention support for :is(), :where(), and :not(), better tolerance of malformed CSS units, and fixes for CSS Grid pagination and list-rendering performance. These changes do not automatically apply to an older iText 7-era dependency. The 6.3.3 release notes identify the exact release.

#1 Best Overall
Sale
iText in Action: Covers iText 5
  • Used Book in Good Condition

CSS properties listed as supported

Backgrounds, borders, and the box model

  • Backgrounds: background, background-color, background-image, background-position (including x/y forms), background-repeat, background-size, background-clip, and background-origin.
  • Borders: side properties and shorthands, colors, styles, widths, and corner or shorthand border-radius.
  • Sizing and spacing: margin and padding shorthands and sides, box-sizing, width, height, and min/max width and height.

The matrix marks background-attachment, border-image properties, box-shadow, and aspect-ratio as unsupported. Intrinsic containment-sizing properties are also unsupported.

Color, display, and positioning basics

color, opacity, display, float, and flex-item order are listed as supported. The matrix distinguishes this from Grid: order is unsupported for Grid items. visibility is unsupported, so hiding content with that property is not a dependable PDF technique.

Flexbox

pdfHTML lists the principal flex properties as supported: align-content, align-items, align-self, flex, flex-basis, flex-direction, flex-flow, flex-grow, flex-shrink, flex-wrap, and justify-content. Support still depends on the structure being converted and on pagination.

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

pdfHTML 6.3.0 expanded flex behavior with more complex justify-content values, align-self, and basic flex-item order support. See the 6.3.0 release notes; do not assume those improvements exist in older builds.

CSS Grid

The matrix includes Grid auto columns, auto flow, and auto rows; template columns, rows, and areas; grid-template; the grid shorthand; column and row start/end properties and shorthands; and grid-area. Nested or multi-page Grid layouts deserve an explicit regression test. Grid pagination fixes in 6.3.3 are a reminder that implementation details can change between releases.

Rank #2

Text and inline layout

  • line-height, vertical-align, letter-spacing, word-spacing, and overflow-wrap (including its word-wrap alias).
  • text-align, text-indent, text-transform, white-space, and word-break.
  • hyphens, text-decoration and its color/line properties, and direction.

The matrix lists several advanced text-decoration and typography features as unsupported. A browser fallback font or shaping behavior can therefore alter line breaks even when the basic text properties are supported.

Lists, counters, generated content, tables, and columns

counter-increment, counter-reset, list-style properties, content, and quotes are supported; counter-set is not. Column properties include columns, column-count, column-width, column rules, and their component properties. Table border and caption properties are listed, but table-layout and several other table properties are not.

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

Paged media, selectors, and media queries

For print-style output, the matrix supports @page, page size, margins and margin boxes, page dimensions and orientation, selected page pseudo-classes such as :left, :right, and :first, and many margin-box style properties. Page-break properties are supported, although some global values are not. Named pages and :blank are unsupported.

@import and @media rules are supported. Selectors include :empty, first/last-child and first/last-of-type forms, :is(), :where(), :not(), and nth-child/nth-of-type variants. The pseudo-elements ::before, ::after, and ::placeholder are supported; many other pseudo-elements are not.

Important unsupported and partial areas

Area What the matrix says Practical consequence
Visual effects box-shadow, filter, and backdrop-filter unsupported Replace effects with borders, backgrounds, or pre-rendered assets.
Layering and visibility z-index and visibility unsupported Do not depend on browser stacking or hidden-but-space-preserving elements.
Images and writing object-position, writing-mode, and unicode-bidi unsupported Pre-crop or position assets and test nonstandard writing directions separately.
Tables table-layout unsupported; other table features vary Use explicit widths and inspect wrapping across pages.
Dynamic CSS Animations, transitions, and scroll-related modules are not implemented Only the static state at conversion time can appear in the PDF.
Variables and cascade CSS custom properties are unsupported; cascading/inheritance is partial or limited Prefer resolved values in print stylesheets and avoid relying on browser-only inheritance behavior.
Transforms and overflow Transforms are partial; overflow support is partial or limited Test clipping, rotated content, and overflow-heavy cards with real documents.

This is why “pdfHTML supports CSS” is too broad. A supported module does not promise browser-equivalent layout, responsive behavior, or interactive output.

How to check a property before shipping

  1. Identify the deployed artifact. Record the pdfHTML and iText Core versions in the Java or .NET build, not just the major “iText 7” label.
  2. Find the property in the matrix. Check whether it is supported, unsupported, or described as partial. Open the matrix for the exact property and module.
  3. Build a minimal reproduction. Use one HTML file, one stylesheet, the target fonts, and a small example of the layout. Include the real page size and page-break rules.
  4. Try the Demo Lab. The iText Demo Lab HTML Converter runs the latest pdfHTML release and is useful for a quick compatibility check. It does not replace testing your pinned dependency.
  5. Convert with your production version. Compare the PDF visually and, where important, extract text or inspect page boxes programmatically.
  6. Regression-test difficult cases. Prioritize nested Grid/flex layouts, page breaks, font fallback, counters, columns, and any partial feature. Keep a rendered-PDF fixture for each upgrade.

Why browser CSS can look different in a PDF

Pagination is not a viewport

A browser continuously lays out content in a resizable viewport. A PDF must choose fixed page dimensions, margins, line breaks, and break positions. A layout that is valid in a browser can therefore reflow, split, or overflow when converted.

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

Unsupported effects have no equivalent output

Animations, transitions, scroll behavior, filters, and many UI pseudo-elements describe interaction or compositing rather than a static page. Replace them with static HTML/CSS or an image generated ahead of conversion.

Fonts change geometry

If the converter cannot use the same font files as the browser, glyph widths and line wrapping change. Bundle and configure the intended fonts, then test scripts and weights used in production.

Version changes matter

The 6.3.0 flex improvements and 6.3.3 selector and Grid changes show why an upgrade can alter an existing PDF. Pin versions, review release notes, and regenerate representative documents before deploying.

Troubleshooting common mismatches

A shadow, filter, or stacking layer disappears

Check whether the property is explicitly unsupported. Use a border, solid background, or pre-rendered graphic; restructure the DOM instead of relying on z-index.

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.

Grid or flex items move or split unexpectedly

Reduce the case to a minimal reproduction, set explicit widths where possible, and test page breaks. Confirm the deployed pdfHTML version, since Grid pagination and flex behavior changed in recent releases.

Page breaks are ignored

Verify the property and value are in the matrix, remove unsupported global values, and test @page dimensions and margins together. Inspect the resulting PDF rather than judging from browser developer tools.

Text wraps differently

Check embedded fonts, font weight availability, line-height, hyphenation, white-space rules, and fallback behavior. A supported property cannot compensate for different font metrics.

Selectors do not match

Confirm that the selector is one of the listed forms. Upgrade only after checking compatibility requirements; :is(), :where(), and :not() support is documented for 6.3.3, not every older release.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
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 you need a visual capture of a rendered HTML page for a bug report or comparison, ScreenshotNeo provides a single-request alternative. It accepts consent banners like a visitor, removes more than 60 known consent platforms plus newsletter popups and chat widgets before capture, and bills only clean shots. Bot checks, CAPTCHAs, 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.

cURL:

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

Python:

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)

Node.js:

const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

See the ScreenshotNeo documentation for options such as full-page capture, CSS-selector element capture, device and retina settings, custom CSS/JavaScript, waits, headers and cookies, PDF page ranges, caching, signed links, asynchronous webhooks, bulk capture, and usage reporting. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000. Create a free ScreenshotNeo account.

Frequently Asked Questions

Does pdfHTML support every CSS value for a supported property?

No. The matrix identifies implemented properties, but values, combinations, nesting, and pagination can still differ. Test the exact document and dependency version.

Is the current matrix a compatibility promise for old iText 7 projects?

No. It is scoped to pdfHTML 6.3.3 with iText Core 9.7.0. Older artifacts require their own conversion tests.

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

Can pdfHTML create interactive browser behavior?

No. Animations, transitions, scrolling, and browser UI behavior are not represented as interactive PDF behavior.

The Bottom Line

Use the official matrix as a version-scoped checklist, not a browser-compatibility guarantee. Core document CSS, substantial Flexbox and Grid, selectors, and paged media are covered; effects, dynamic modules, and several advanced properties are not. Verify every important layout with the exact pdfHTML build that will generate your PDFs.

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.