Optional modules beyond core PDF 2.0. Each is a { name, dependencies, factory } descriptor, consumable directly via runtime.resolve(name) or through pdfApi.use(...). Grouped by phase priority.
P0 — critical coverage (7)
| Module | Status | Description |
|---|---|---|
pdfContentOpsExtended |
read | Extended gstate operators + full ExtGState catalog §8.4.5. |
pdfFontCidTyped |
read | CIDFont, CSI, /W, predefined CMaps §9.7. |
pdfFontColorTagging |
read | Color fonts (COLR/CPAL/sbix/SVG) §9.8.2. |
pdfTaggedPdfTyped |
read | Structural attribute owners §14.8.5. |
pdfAnnotExtended |
read | Watermark/3D/RichMedia/Sound/Movie/Screen §12.5.6. |
pdfAOutputIntent |
lint | PDF/A detection + basic lint. |
pdfUaTagged |
lint | PDF/UA-1/2 linter. |
P1 — extended coverage (14)
| Module | Status | Description |
|---|---|---|
pdfFormActionsExtended |
read | Extended actions §12.6.4. |
pdfColorSpacesExtended |
read | Typed color spaces §8.6. |
pdfShadingTyped |
read | Shadings 1-7 + Functions 0/2/3/4 §8.7.4 / §7.10. |
pdfTransparencyTyped |
read | Transparency Group + Soft Mask + blend modes §11. |
pdfSigPades |
read | PAdES profile + DSS + Reference §12.8.4.3. |
pdfSigAesGcm |
read | AES-GCM crypt filter ISO/TS 32003. |
pdfDocumentParts |
read | DPartRoot/DPart/DPM ISO/TS 32004. |
pdfRedactionIso32005 |
read | Redaction workflow ISO/TS 32005. |
pdfXPrepress |
lint | PDF/X profiles ISO 15930. |
pdfWellTagged |
lint | WTPDF 1.0 best-practices. |
pdfOptionalContentExtended |
read | OCG VE + Order tree + RBGroups §8.11. |
pdfEmbeddedFilesPortfolio |
read | Portfolio /Schema//Sort//Navigator. |
pdfAssociatedFiles2 |
read | Extended /AF, PDF 2.0. |
pdfXmpExtended |
read | XMP packet extractor. |
P2 — PDF 2.0 long tail (3)
| Module | Status | Description |
|---|---|---|
pdfLinearizationWrite |
write | Linearization Parameter Dict (Annex F). |
pdf3dRichMedia |
read | Detailed 3D/RichMedia §13.6. |
pdfJbig2Read |
read (partial) | JBIG2 segment headers — decode not implemented. |
P3 — Catalog + Info tail, sandbox (3)
| Module | Status | Description |
|---|---|---|
pdfMisc |
read | SpiderInfo/Threads/Legal/Requirements/Perms/NeedsRendering. |
pdfInfoDictDeprecated |
lint | Deprecated Info dict → XMP mapping. |
pdfSandbox |
lint | Active-content (Launch/JavaScript/SubmitForm/…) sandbox linter. |
Legacy — PDF 1.7 read + deprecated filters (5)
| Module | Status | Description |
|---|---|---|
pdfLegacyXfaRead |
read-only | Opaque /XFA packets. |
pdfLegacyRc4Read |
read-only | RC4 v2/v3 password + decrypt. |
pdfCcittFaxDecoder |
read + write | Full CCITT Group 3/Group 4 (T.4/T.6) codec. |
pdfLegacyDeprecatedFilters |
read | LZW + CCITT (via pdfCcittFaxDecoder) + DCT + JPX. |
pdfLegacyDeprecatedAnnots |
read | Sound/Movie/Screen in detail. |
Common pattern
import { ModuleRuntime } from '@awacloud/fw/core/runtime.js';
import { fw_require, pkg_require, modules, extras, bundle } from '@awacloud/pdf';
const rt = new ModuleRuntime();
for (const m of fw_require) rt.register(m);
for (const m of pkg_require) rt.register(m);
for (const m of modules) rt.register(m);
for (const m of extras) rt.register(m);
for (const m of bundle) rt.register(m);
const ext = rt.resolve('pdfContentOpsExtended');
ext.typeExtGState(dict);
Unlike the modules array, extras entries are not part of the package
root's additive re-export list (import { pdfContentOpsExtended } from '@awacloud/pdf' does not exist) — each extra is only reachable through the
extras array above, through ModuleRuntime, or through its own
./extra/* export subpath. A sibling composer that wants to avoid building a
runtime can import the extra directly by subpath and resolve its declared
dependencies (always core modules members, reachable from the package
root) itself:
import { pdfContentOpsExtended } from '@awacloud/pdf/extra/content-ops-extended';
import { pdfErrors, pdfParserObj } from '@awacloud/pdf';
const ext = pdfContentOpsExtended.factory(pdfErrors.factory(), pdfParserObj.factory());
ext.typeExtGState(dict);