@@ -5,58 +5,58 @@ This document outlines the architecture of @libpdf/core. It's a living document
55## Layer Overview
66
77```
8- ┌─────────────────────────────────────────────────────────────────┐
9- │ High-Level API │
8+ ┌────────────────────────────────────────────────────────────────── ┐
9+ │ High-Level API │
1010│ (PDF, PDFPage, PDFForm, PDFAttachments, PDFSignature, PDFImage)│
11- ├─────────────────────────────────────────────────────────────────┤
12- │ Annotations Layer │
13- │ (PDFAnnotation types, appearance generation, flattening) │
14- ├─────────────────────────────────────────────────────────────────┤
15- │ Text Layer │
16- │ (TextExtractor, TextState, LineGrouper, text-search) │
17- ├─────────────────────────────────────────────────────────────────┤
18- │ Drawing Layer │
19- │ (DrawingContext, PathBuilder, TextLayout, ColorHelpers) │
20- ├─────────────────────────────────────────────────────────────────┤
21- │ Document Layer │
22- │ (ObjectRegistry, ObjectCopier, AcroForm, ChangeCollector) │
23- ├─────────────────────────────────────────────────────────────────┤
24- │ Signatures Layer │
25- │ (Signers, CMS Formats, Timestamp, Revocation, DSS, Placeholder)│
26- ├─────────────────────────────────────────────────────────────────┤
27- │ Images Layer │
28- │ (JPEG embedding, PNG embedding, PDFImage) │
29- ├─────────────────────────────────────────────────────────────────┤
30- │ Fonts Layer │
31- │ (FontFactory, FontEmbedder, SimpleFont, CompositeFont) │
32- ├─────────────────────────────────────────────────────────────────┤
33- │ Fontbox Layer │
34- │ (TTF/CFF/Type1 parsing, subsetting, encoding) │
35- ├─────────────────────────────────────────────────────────────────┤
36- │ Layers (OCG) │
37- │ (Layer detection, flattening) │
38- ├─────────────────────────────────────────────────────────────────┤
39- │ DocumentParser │
40- │ Top-level orchestration and document access │
41- ├─────────────────────────────────────────────────────────────────┤
42- │ Security Layer │
43- │ (StandardSecurityHandler, Ciphers, Key Derivation, Encryption)│
44- ├─────────────────────────────────────────────────────────────────┤
45- │ Object Layer │
46- │ (PdfDict, PdfArray, PdfStream, PdfRef, PdfName, etc.) │
47- ├─────────────────────────────────────────────────────────────────┤
48- │ Parser Components │
49- │ (TokenReader, ObjectParser, XRefParser, BruteForceParser) │
50- ├─────────────────────────────────────────────────────────────────┤
51- │ Filters │
52- │ (Flate, LZW, ASCII85, ASCIIHex, etc.) │
53- ├─────────────────────────────────────────────────────────────────┤
54- │ Writer │
55- │ (PDFWriter, Serializer, XRefWriter) │
56- ├─────────────────────────────────────────────────────────────────┤
57- │ I/O Layer │
58- │ (Scanner, BinaryWriter) │
59- └─────────────────────────────────────────────────────────────────┘
11+ ├────────────────────────────────────────────────────────────────── ┤
12+ │ Annotations Layer │
13+ │ (PDFAnnotation types, appearance generation, flattening) │
14+ ├────────────────────────────────────────────────────────────────── ┤
15+ │ Text Layer │
16+ │ (TextExtractor, TextState, LineGrouper, text-search) │
17+ ├────────────────────────────────────────────────────────────────── ┤
18+ │ Drawing Layer │
19+ │ (DrawingContext, PathBuilder, TextLayout, ColorHelpers) │
20+ ├────────────────────────────────────────────────────────────────── ┤
21+ │ Document Layer │
22+ │ (ObjectRegistry, ObjectCopier, AcroForm, ChangeCollector) │
23+ ├────────────────────────────────────────────────────────────────── ┤
24+ │ Signatures Layer │
25+ │ (Signers, CMS Formats, Timestamp, Revocation, DSS, Placeholder) │
26+ ├────────────────────────────────────────────────────────────────── ┤
27+ │ Images Layer │
28+ │ (JPEG embedding, PNG embedding, PDFImage) │
29+ ├────────────────────────────────────────────────────────────────── ┤
30+ │ Fonts Layer │
31+ │ (FontFactory, FontEmbedder, SimpleFont, CompositeFont) │
32+ ├────────────────────────────────────────────────────────────────── ┤
33+ │ Fontbox Layer │
34+ │ (TTF/CFF/Type1 parsing, subsetting, encoding) │
35+ ├────────────────────────────────────────────────────────────────── ┤
36+ │ Layers (OCG) │
37+ │ (Layer detection, flattening) │
38+ ├────────────────────────────────────────────────────────────────── ┤
39+ │ DocumentParser │
40+ │ Top-level orchestration and document access │
41+ ├────────────────────────────────────────────────────────────────── ┤
42+ │ Security Layer │
43+ │ (StandardSecurityHandler, Ciphers, Key Derivation, Encryption) │
44+ ├────────────────────────────────────────────────────────────────── ┤
45+ │ Object Layer │
46+ │ (PdfDict, PdfArray, PdfStream, PdfRef, PdfName, etc.) │
47+ ├────────────────────────────────────────────────────────────────── ┤
48+ │ Parser Components │
49+ │ (TokenReader, ObjectParser, XRefParser, BruteForceParser) │
50+ ├────────────────────────────────────────────────────────────────── ┤
51+ │ Filters │
52+ │ (Flate, LZW, ASCII85, ASCIIHex, etc.) │
53+ ├────────────────────────────────────────────────────────────────── ┤
54+ │ Writer │
55+ │ (PDFWriter, Serializer, XRefWriter) │
56+ ├────────────────────────────────────────────────────────────────── ┤
57+ │ I/O Layer │
58+ │ (Scanner, BinaryWriter) │
59+ └────────────────────────────────────────────────────────────────── ┘
6060```
6161
6262---
0 commit comments