# Tincture v0.1.0 - Table of Contents

Typographic-quality PDF generation with no runtime dependencies. TeX hyphenation, Knuth-Plass line breaking, TrueType/OpenType embedding with subsetting, tables, forms, AES-256 encryption, and verified PDF/UA and PDF/A output.

## Pages

- [Tincture](readme.md)
- [Changelog](changelog.md)
- [Roadmap](roadmap.md)
- [NOTICE](notice.md)
- [LICENSE](license.md)

## Modules

- [Tincture](Tincture.md): Typographic-quality PDF generation, in pure Elixir.
- [Tincture.Font.Context](Tincture.Font.Context.md): A measurement context — how wide a string will be, in any font a document knows.
- [Tincture.Layout.Box.FlowResult](Tincture.Layout.Box.FlowResult.md): What `flow_text/7` and `flow_across_boxes/4` managed to place.
- [Tincture.Layout.Table.RenderResult](Tincture.Layout.Table.RenderResult.md): Where a rendered table ended, so the next element can be placed below it.

- [Tincture.Layout.Template.DocumentResult](Tincture.Layout.Template.DocumentResult.md): The outcome of a paginated render.
- [Tincture.Layout.Template.RenderResult](Tincture.Layout.Template.RenderResult.md): The outcome of rendering one templated page.

- [Tincture.Layout.Template.Slot](Tincture.Layout.Template.Slot.md): A header or footer: its text, font and size.

- [Tincture.PDF.Archival](Tincture.PDF.Archival.md): Checks a document against the PDF/A rules Tincture can see.
- [Tincture.PDF.CMS](Tincture.PDF.CMS.md): Detached PKCS#7 / CMS signatures, for signing PDFs.
- [Tincture.PDF.Encrypt](Tincture.PDF.Encrypt.md): Standard security handler, revision 6 — AES-256.
- [Tincture.PDF.ICC](Tincture.PDF.ICC.md): A built-in sRGB ICC profile, for use as a PDF/A output intent.
- [Tincture.PDF.Sign](Tincture.PDF.Sign.md): Applying a digital signature to a finished PDF.
- [Tincture.PDF.Structure](Tincture.PDF.Structure.md): The logical structure of a tagged document.
- [Tincture.Telemetry](Tincture.Telemetry.md): Telemetry events emitted while building a document.
- [Tincture.Typography.LayoutResult](Tincture.Typography.LayoutResult.md): Laid-out lines, plus whatever did not fit within the line limit.

- [Tincture.Typography.Line](Tincture.Typography.Line.md): One laid-out line: its text, its tokens, its measured width and its position.

- [Tincture.Typography.RichText.Break](Tincture.Typography.RichText.Break.md): An explicit line or paragraph break.

- [Tincture.Typography.RichText.Run](Tincture.Typography.RichText.Run.md): A span of text sharing one font, size and style.

- [Tincture.Typography.RichText.Space](Tincture.Typography.RichText.Space.md): An inter-word space. The line breaker stretches and shrinks these when
justifying, which is why they are tokens rather than part of the words.

- [Tincture.Typography.RichText.Word](Tincture.Typography.RichText.Word.md): A single word token, carrying the width it measured to in its run's font.

- Layout
  - [Tincture.Layout.Box](Tincture.Layout.Box.md): Text flow within a bounded region, and across several of them.
  - [Tincture.Layout.Table](Tincture.Layout.Table.md): Tabular layout with headers, borders and automatic column widths.
  - [Tincture.Layout.Template](Tincture.Layout.Template.md): Page templates: margins, columns, headers, footers and pagination.

- Typography
  - [Tincture.Typography](Tincture.Typography.md): Paragraph layout: hyphenation, line breaking and justification.
  - [Tincture.Typography.Hyphen](Tincture.Typography.Hyphen.md): TeX hyphenation.
  - [Tincture.Typography.RichText](Tincture.Typography.RichText.md): Styled text, ready for layout.

- Font formats
  - [Tincture.Font.Binary](Tincture.Font.Binary.md): Bounds-checked readers for big-endian font table data.
  - [Tincture.Font.CFF](Tincture.Font.CFF.md): Primitives for the Compact Font Format container.
  - [Tincture.Font.OpenType.Common](Tincture.Font.OpenType.Common.md): The OpenType Layout common table formats, shared by `GPOS` and `GSUB`.
  - [Tincture.Font.OpenType.GPOS](Tincture.Font.OpenType.GPOS.md): Parser for the OpenType `GPOS` table: glyph positioning.
  - [Tincture.Font.OpenType.GSUB](Tincture.Font.OpenType.GSUB.md): Parser for the OpenType `GSUB` table: glyph substitution.
  - [Tincture.Font.TTF](Tincture.Font.TTF.md): Reads the metrics and metadata a PDF needs out of a font file.
  - [Tincture.Font.TTF.Cmap](Tincture.Font.TTF.Cmap.md): Parser for the TrueType/OpenType `cmap` table.
  - [Tincture.Font.TTF.Glyf](Tincture.Font.TTF.Glyf.md): Parsers for the TrueType glyph outline tables, `loca` and `glyf`.
  - [Tincture.Font.TTF.Name](Tincture.Font.TTF.Name.md): Parser for the OpenType `name` table.
  - [Tincture.Font.UnicodeRanges](Tincture.Font.UnicodeRanges.md): Mapping between Unicode codepoints and OpenType `OS/2.ulUnicodeRange` bits.

- PDF internals
  - [Tincture.PDF](Tincture.PDF.md): Internal PDF state container.

  - [Tincture.PDF.FontEmbed](Tincture.PDF.FontEmbed.md): Builds the PDF objects for embedded TrueType and OpenType fonts.
  - [Tincture.PDF.Object](Tincture.PDF.Object.md): Primitives for writing PDF object syntax.
  - [Tincture.PDF.Serialize](Tincture.PDF.Serialize.md): Turns a `Tincture.PDF` document into PDF bytes.

