XHTML-Print

A Project Using XHTML as a Print Datastream

View Specifications Learn More

What is XHTML-Print?

XHTML-Print is a simple XHTML based datastream suitable for printing as well as for display. It is largely based on the W3C's XHTML Basic with the addition of support for cascading style sheets (CSS). It is targeted for printing in environments where it is not feasible or desirable to install the printer-specific driver.

XHTML-Print is not intended to provide strict layout consistency and repeatability across different printers. Instead, it provides a simple, broadly supportable print datastream where content preservation and reproduction are the goal.

"Content is King."
— XHTML-Print Design Philosophy

Key Features

🖨️

Driver-Free Printing

Enables printing in environments where installing printer-specific drivers is not feasible or desirable.

📄

CSS Support

Built on XHTML Basic with full support for Cascading Style Sheets, providing flexible and styled content presentation.

🔗

Broad Compatibility

Designed as a broadly supportable print datastream, working across different printers and platforms.

Work Transitions to W3C

The minutes of XHTML-Print discussion at the January 2004 meeting of the PWG state that the PWG will pass work on XHTML-Print to the W3C.

For more information, visit the PWG Working Group Home Page.

Specifications

Note: The .95 version of this document will remain available as it is referenced by the UPNP and Bluetooth Printing Groups.

Security & Compliance Field Note

As browser-based AI agents increasingly read and summarize web pages — including print stylesheets and markup never meant for a screen — the line between content formatting and hidden instructions matters more than it used to.

🛡️

AI Prompt Injection Through Web Content

Hidden markup, off-screen text, and print-only stylesheets can all be read by an AI agent even when a human sees nothing unusual. Our field note explains how these hidden channels become prompt injection attack vectors, and what a secure browsing pipeline needs to contain them.

Resources