EvoPdf Next · Accessible PDF

Create accessible PDF/UA documents in .NET, from HTML, Word or code

EvoPdf Next generates PDF/UA-1 and PDF/UA-2 documents that screen readers and assistive technologies can read, with one property. The HTML to PDF Converter builds the tagged structure from your HTML: headings, paragraphs, lists, tables with their header cells, links and the alternate text of images carry over to the PDF, together with the document language and title. The same standards are available when you convert Word, Excel, RTF and Markdown documents and when you create PDF documents from code; each of them can be combined with PDF/A for long-term archiving in a single file. The library runs on Windows, Linux and macOS, including Azure, AWS, Google Cloud and Docker.

Version 15.0.3. Building EVO PDF libraries since 2010. Evaluate without registration; the demo output is watermarked until you set a license key. Included in the HTML to PDF Converter license.

Documentation · PDF/UA from code · Samples and demos on GitHub

ConsoleCLI
dotnet add package EvoPdf.Next.HtmlToPdf.Windows

This is the Windows package; EvoPdf.Next.HtmlToPdf.Linux and EvoPdf.Next.HtmlToPdf.MacOS work the same way, or use the all-components EvoPdf.Next.* metapackage for your platform.

Program.csC#
using EvoPdf.Next;

var converter = new HtmlToPdfConverter();

// accessible (PDF/UA-1) and archivable (PDF/A-2b) in one file
converter.PdfDocumentOptions.PdfStandard =
    PdfStandard.PdfUa1PdfA2b;

// optional: replaces the title of the HTML page
converter.PdfDocumentInfo.Title = "Annual report 2026";

byte[] pdf = converter.ConvertUrl(url);
An accessible, archivable PDF from a web page. All standards in the docs →
  • Windows 10, 11 and Windows Server 2016 to 2025 (x64 and ARM64)
  • Linux 64-bit distributions (x64 and ARM64)
  • macOS 12.0+ (Apple Silicon / ARM64)
  • .NET 10.0, 9.0, 8.0, 7.0, 6.0, .NET Standard 2.0
  • .NET Framework 4.6.2 to 4.8.1
  • Azure App Service, Functions and Container Apps
  • AWS Elastic Beanstalk, Lambda and ECS
  • Google Cloud Run and Kubernetes
  • Web, console and desktop applications
How it works

The structure comes from your HTML

An accessible PDF is a tagged PDF: every heading, paragraph, list, table and image is marked with its role, in reading order; the file also states its language and title. The converter takes all of this from the HTML you already write.

Write semantic HTML

One h1, headings in order, real lists and tables with header cells, alt on meaningful images and a lang attribute on the root element. The same markup that works for the web works for the PDF.

Set the standard

PdfDocumentOptions.PdfStandard selects PDF/UA-1, PDF/UA-2, WTPDF or one of the combinations with PDF/A. The converter builds the tags, the reading order and the metadata the standard requires; nothing else changes in your conversion code.

Deliver the document

The accessible document can be signed, stamped, password protected and attached to like any other generated PDF. PDF 2.0 documents are encrypted with AES 256 unless another algorithm is selected.

Standards

Accessibility and archiving in one file

The documents the library produces validate in veraPDF, in the PDF Accessibility Checker (PAC) and in Adobe Acrobat, for each standard and for each combination below.

Accessibility

PDF/UA-1 is the established standard for accessible PDF 1.7 documents; PDF/UA-2 is its successor, based on PDF 2.0. WTPDF 1.0 (Well-Tagged PDF) is the PDF Association specification for accessible and reusable PDF 2.0 documents; a WTPDF document also conforms to PDF/UA-2.

PDF/UA-1PDF/UA-2WTPDF 1.0

Archiving

PDF/A-2 and PDF/A-3 at conformance levels b, u and a, with PDF/A-3 and PDF/A-4f carrying embedded files of any type; PDF/A-4 is based on PDF 2.0. The a levels are tagged, so a PDF/A-2a or PDF/A-3a document is itself accessible.

PDF/A-2aPDF/A-2bPDF/A-3aPDF/A-3bPDF/A-3uPDF/A-4PDF/A-4f

Combinations

One PdfStandard value produces a document that conforms to both an accessibility and an archival standard: PDF/UA-1 with PDF/A-2b, PDF/A-2a or PDF/A-3a, PDF/UA-2 with PDF/A-2b, PDF/A-2a, PDF/A-4 or PDF/A-4f and WTPDF 1.0 with PDF/A-4 or PDF/A-4f. PDF/UA-1 with PDF/A-3a is the standard of the accessible electronic invoices.

Who requires accessible documents

Section 508 for US federal agencies and their suppliers and the ADA Title II rule for state and local governments, with deadlines in 2026 and 2027. In the EU, the European Accessibility Act since June 28, 2025 for the documents businesses deliver to consumers, such as invoices, statements and contracts, next to the public sector accessibility directives in the EU and the UK.

Sources

Accessible PDF from HTML, Word, Excel, RTF, Markdown or code

The standards are the same across the library. The HTML to PDF Converter is the usual path; the other converters expose the same option and the Core PDF API tags the content you draw.

HTML to PDF Converter: PdfDocumentOptions.PdfStandardDemoDocs + code
Core PDF API, documents created from code: PdfDocumentCreateSettings.PdfStandardDemoDocs + code
Word, Excel, RTF and Markdown to PDF: the PdfStandard option of each converterWord to PDF
Electronic invoices: PDF/UA-1 with PDF/A-3aZUGFeRD and Factur-X

Tagging content you draw yourself

With PdfDocument every text element gets a structure type: Heading1 to Heading3 for the hierarchy, Paragraph for body text and Artifact for decorative content such as page-number badges, watermarks and ruling grids, which screen readers skip. Images carry an AlternateText. The document language, the title and the DisplayDocTitle viewer preference complete the accessible document; right-to-left scripts use a Unicode font with PdfTextDirection.RightToLeft.

Create PDF/UA and PDF/A documents from code →

Licensing

Included in the HTML to PDF Converter license

Accessible documents from HTML and from code are covered by the HTML to PDF Converter license, which includes the Core PDF API: 450 USD for a Deployment License (one application on a single server) or 1200 USD for a Company License (unlimited developers, applications and servers, redistributable). Accessible documents from Word, Excel, RTF or Markdown need the EVO PDF Toolkit, 650 USD or 1400 USD, which covers every component on this site. All licenses are perpetual, with updates and support for the first year.

Questions

PDF/UA in EvoPdf Next

Are the PDF/UA and PDF/A documents really compliant?

They are. The tagged structure and the metadata are built from the HTML and the output validates in veraPDF, PAC and Adobe Acrobat, both for the single standards and for the combinations such as PDF/UA-1 with PDF/A-2b. The online demo generates them from your own HTML, so you can run the files through your own checker before you buy.

Does my HTML need changes to produce a PDF/UA document?

Usually only the ones good web accessibility asks for anyway: a single h1, headings in order, lists and tables written as lists and tables, alt text on meaningful images and a lang attribute on the root element. The converter turns that structure into the tags of the PDF.

Which standard should I choose?

PDF/UA-1 is what most accessibility requirements name today and what the widest range of viewers supports; PDF/UA-2 and WTPDF are the PDF 2.0 generation. When the document also has to be archived, pick a combination such as PdfUa1PdfA2b, which satisfies both requirements with one file.

Can PDF/UA be combined with PDF/A?

Yes: PDF/UA-1 with PDF/A-2b, PDF/A-2a or PDF/A-3a, PDF/UA-2 with PDF/A-2b, PDF/A-2a, PDF/A-4 or PDF/A-4f and WTPDF 1.0 with PDF/A-4 or PDF/A-4f. Each combined value produces a single document that conforms to both standards.

Can an accessible document be signed or encrypted?

It can. Digital signatures, HTML stamps, attachments, passwords and permissions apply to PDF/UA and PDF/A documents as to any other generated PDF; PDF 2.0 documents use AES 256 encryption unless you select another algorithm.

Do the Word, Excel, RTF and Markdown converters produce PDF/UA too?

They do, through the same PdfStandard option, with the tagged structure following the headings, paragraphs, tables and images of the source document. Documents created from code with PdfDocument take the standard from PdfDocumentCreateSettings and the structure types you assign to the elements.