Table of Contents

Compliance: PDF/A, tagged PDF, and RTL

Tagged PDF (accessibility) and PDF/A

WithTagging() builds a structure tree (headings, paragraphs, figures with alt text) for assistive technologies; AsPdfA() adds an sRGB output intent and PDF/A identification XMP for PDF/A-2b conformance.

var bytes = Document.Create(doc => doc
        .Page(page => page.Content(c => c.Column(col =>
        {
            col.Item().Heading(1).Text("Title");
            col.Item().Paragraph().Text("Body text");
            col.Item().Image(logoPng, altText: "Company logo");
        }))))
    .WithTagging()   // structure tree: headings, paragraphs, figures with alt text
    .AsPdfA()        // sRGB output intent + pdfaid identification XMP
    .ToBytes();

Right-to-left layout

RTL content gets bidi reordering and Arabic shaping. Enable it for the whole page or per container:

Document.Create(doc => doc
    .Page(page => page
        .ContentFromRightToLeft()
        .Content(c => c.Text("مرحبا بالعالم"))));

// …or per container: c.ContentFromRightToLeft().Row(…)
Note

Rendering Arabic requires a font with presentation-form glyphs (e.g. Arial, Noto Naskh Arabic, Amiri).

Ordering with other operations

AsPdfA() and XMP generation belong near the end of the pipeline, but before signing:

manipulations → Linearize()WithXmpMetadata() / AsPdfA()Sign() last.