Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
396f698
Add PdfDocument Phase 1: PDF parsing, xref, page tree
Sep 29, 2026
8a6d642
Add PdfDocument Phase 2: content-stream path rendering
Sep 29, 2026
6155b81
Add PdfDocument Phase 3: device color spaces + image XObjects
Sep 29, 2026
f8b929c
Add PdfDocument Phase 4: embedded TrueType text rendering
Sep 29, 2026
db4dcb3
Add PdfDocument Phase 5: Fonts subsystem OTF/CFF and TTC support
Sep 29, 2026
18035b3
Add PdfDocument Phase 5b: Fonts name/style metadata exposure
Sep 29, 2026
0052b9f
Add PdfDocument Phase 6: OS font discovery and fallback matching
Sep 30, 2026
18b8b24
Add PdfDocument Phase 7: remaining stream filters
Sep 30, 2026
dc5d467
Add PdfDocument Phase 8: fixture corpus + doc completeness pass
Sep 30, 2026
f92238c
Fix 43 orphaned CanvasNet-Fonts-* requirements
Sep 30, 2026
1b3058e
fix(pdf): parse inline dictionary operands in content streams
Sep 30, 2026
5dda5e1
feat(pdf): support Type0/CIDFontType2 composite fonts with Identity-H…
Sep 30, 2026
2449dfc
feat(pdf): parse composite-font /ToUnicode CMap streams (Phase 10)
Sep 30, 2026
869f22c
feat(pdf): support CIDFontType0 descendant fonts (non-CID-keyed OpenT…
Sep 30, 2026
57b7659
feat(pdf): resolve /FunctionType 0 sampled functions (Pattern roadmap…
Sep 30, 2026
8a48fc7
fix(pdf): treat empty /ToUnicode bfchar/bfrange destination as no map…
Sep 30, 2026
9dfa360
fix(pdf): treat 'h' with no open subpath as a no-op
Sep 30, 2026
c343cc3
feat(fonts): add classic PostScript Type 1 font support (core)
Sep 30, 2026
9e0a970
feat(pdf): dispatch /Subtype /Type1 fonts to core Type1 font loader
Oct 1, 2026
9201082
fix(fonts): support 'div' preceding Type 1 hsbw/sbw advance-width peek
Oct 1, 2026
63908b6
fix(pdf): resolve simple fonts with no /FontDescriptor at all via fal…
Oct 1, 2026
c12f084
fix(pdf): add missing ff/ffi/ffl ligature glyph names to StandardGlyp…
Oct 1, 2026
c656d69
fix(pdf): add missing 'nacute' glyph name to StandardGlyphNames
Oct 1, 2026
f1fce56
feat(pdf): add Form XObject (nested content stream) rendering support
Oct 1, 2026
dc3d976
feat(pdf): add /ICCBased and /Indexed color space support
Oct 1, 2026
ea6da9b
feat(pdf): add CCITTFaxDecode (Group 4 MMR) image filter support
Oct 1, 2026
f89cb93
feat(pdf): add embedded Type1C (bare CFF) simple font support
Oct 1, 2026
4079264
feat(pdf): add Type3 font support
Oct 1, 2026
a726db9
fix(pdf): bound color-space name resolution recursion depth
Oct 1, 2026
ff8d29f
fix(pdf): tolerate FlateDecode streams with a wrong Adler-32 checksum
Oct 1, 2026
eaada76
feat(pdf): support encrypted PDFs with empty user password (RC4/AES-1…
Oct 1, 2026
7b20212
feat(fonts): support CFF seac-style endchar accent composition
Oct 1, 2026
4fbb3fe
fix(pdf): tolerate unrecognized /Encoding/Differences glyph names
Oct 1, 2026
72554b7
feat(pdf): support authenticating encrypted PDFs with a caller-suppli…
Oct 1, 2026
9346a62
feat(fonts): support CFF rcurveline/rlinecurve and flex-shortcut oper…
Oct 1, 2026
db81d4b
Add Symbol/ZapfDingbats font fallback via bundled Noto substitute fonts
Oct 1, 2026
8f2c338
Add PDF /Pattern color space support (tiling and shading patterns)
Oct 2, 2026
e4c5921
Fix scn pattern operand count for colored patterns with declared base
Oct 2, 2026
c6f91b5
Add PDF CalRGB color space support (resolves to DeviceRGB)
Oct 2, 2026
11fff66
Add PDF text-rendering modes 1/2 (stroke, fill+stroke)
Oct 2, 2026
eb5b474
Fix hmtx trailing-tail requirement and Type1 CharStrings scan boundary
Oct 2, 2026
1fdf3c3
Accept bare or SFNT-wrapped CFF regardless of declared FontFile3 subtype
Oct 2, 2026
611cc46
Fix integer-overflow exception leak in Type1 CharStrings length scan
Oct 2, 2026
3bea535
Harden PdfDocument against malformed/adversarial input (7 fixes)
Oct 2, 2026
f41cf56
Add PdfDocument.Render(int, float) DPI convenience overload
Oct 2, 2026
8b157c3
Add Render-to-PNG example to PdfDocument.Pdf namespace docs
Oct 2, 2026
a956c46
Extend .reviewmark.yaml coverage to nested READMEs, .csproj files, an…
Oct 2, 2026
6727343
Fix orphaned requirements and stale test references in reqstream YAML
Oct 2, 2026
df9a598
Sync SysML2 model comments with current PdfDocument/Fonts implementation
Oct 2, 2026
f305cb7
Sync CanvasNetPdf design/verification docs with implemented feature set
Oct 2, 2026
bc86abc
Sync CanvasNet core design/verification docs with GifCodec/TilePaint/…
Oct 2, 2026
c977f72
docs: fix self-contradictory sibling-unit wording and stale TilePaint…
Oct 2, 2026
8d4bc3f
fix(pdf): harden PdfDocument against decompression bombs and referenc…
Oct 2, 2026
f1f64d6
docs: sync docs/design/introduction.md with current software structure
Oct 2, 2026
7178ab0
test,docs: close verification/test-traceability gaps found by formal …
Oct 2, 2026
64799c4
Fix GitHub Copilot PR review findings
Oct 2, 2026
2582840
Fix design/verification doc gaps from 3rd-round formal review
Oct 2, 2026
b47fde4
Fix source-code doc/validation gaps from 3rd-round formal review
Oct 2, 2026
7860017
Fix PDF requirements/design-doc gaps from 3rd-round formal review
Oct 2, 2026
10c3091
Fix CID/subroutine-index overflow and OOM findings from Copilot PR re…
Oct 2, 2026
2c91c59
Reject all-zero xref stream /W widths to prevent CPU DoS
Oct 2, 2026
16c2382
Guard all indirect-object resolution against cycles, not just compressed
Oct 2, 2026
4cbb25a
Bound object stream header parsing against its decoded byte length
Oct 2, 2026
43e5ab4
Bound classic xref subsection counts to prevent CPU DoS
Oct 2, 2026
dfe13a0
Initialize encryption before resolving encrypted root objects
Oct 2, 2026
998cf64
Prevent symlink cycles during font directory scanning
Oct 2, 2026
ebbb8f2
Fix PNG fixed-predictor row layout to avoid silent corruption
Oct 2, 2026
b4752e2
Limit recursive PDF object nesting depth
Oct 2, 2026
0c00972
Validate startxref and object offsets before tokenizer access
Oct 2, 2026
6e881e5
Clear stale encryption state during trailer fallback
Oct 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
102 changes: 102 additions & 0 deletions .cspell.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,32 @@ words:
- Aabb
- AABB
- Adler
- AESV
- AGG
- apimark
- ApiMark
- basn
- Beziers
- BGRA
- Blinn
- closepath
- componentwise
- renderable
- unparseable
- endobj
- endstream
- Flate
- fonttools
- MACROMAN
- mediabox
- MCID
- Parms
- panose
- rasterizing
- startxref
- Startxref
- SYNT
- undecoded
- BITMAPCOREHEADER
- BITMAPFILEHEADER
- BITMAPINFOHEADER
Expand All @@ -39,6 +58,7 @@ words:
- Casteljau
- chokepoint
- CMYK
- CCITT
- coeffs
- combinators
- CSUM
Expand All @@ -57,6 +77,7 @@ words:
- deinterleaved
- desaturated
- desaturates
- desyncs
- downsamples
- DEMA
- Dema
Expand All @@ -79,7 +100,9 @@ words:
- IEND
- IHDR
- Inkscape
- inspectable
- interoperating
- JBIG
- JFIF
- Lambertian
- lerp
Expand All @@ -91,6 +114,7 @@ words:
- misdecoded
- nameof
- nonzero
- NOTAFONT
- NOTAGIF
- Outliner
- Plte
Expand Down Expand Up @@ -165,6 +189,8 @@ words:
- Unstroked
- unduplicated
- rects
- asciihex
- runlength
- letterboxing
- Unpremultiply
- unioning
Expand Down Expand Up @@ -202,6 +228,80 @@ words:
- stylesheet
- Stylesheet
- tryparse
- callgsubr
- callsubr
- Charstring
- charstring
- cntrmask
- Endchar
- endchar
- hhcurveto
- hintmask
- hlineto
- hmoveto
- hstem
- hstemhm
- hvcurveto
- lineto
- Lineto
- misalign
- moveto
- Moveto
- rcurveline
- rlinecurve
- rlineto
- rmoveto
- rrcurveto
- Seac
- seac
- Sfnt
- SFNT
- Subr
- Subrs
- ttcf
- vhcurveto
- vlineto
- vmoveto
- vstem
- vstemhm
- vvcurveto
- hflex
- eexec
- Eexec
- hsbw
- Hsbw
- sbw
- dotsection
- Dotsection
- lenIV
- cleartomark
- ncleartomark
- ncurrentfile
- congruential
- codepoints
- charstrings
- ciphertext
- reindexing
- exclam
- quotedbl
- numbersign
- quotesingle
- parenleft
- parenright
- bracketleft
- bracketright
- asciicircum
- braceleft
- braceright
- asciitilde
- nacute
- Nacute
- CharProcs
- Procs
- PRGA
- decryptor
- Decryptor
- keystream

# Exclude common build artifacts, dependencies, and vendored third-party code
ignorePaths:
Expand All @@ -219,3 +319,5 @@ ignorePaths:
- "**/obj/**"
- package-lock.json
- "**/PngSuite/**"
- "src/DemaConsulting.CanvasNet/Fonts/BundledFonts/OFL.txt"
- "src/DemaConsulting.CanvasNet/Fonts/BundledFonts/NotoFonts-OFL.txt"
2 changes: 2 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,8 @@ jobs:
src/DemaConsulting.CanvasNet/bin/Release/*.snupkg
src/DemaConsulting.CanvasNet.Svg/bin/Release/*.nupkg
src/DemaConsulting.CanvasNet.Svg/bin/Release/*.snupkg
src/DemaConsulting.CanvasNet.Pdf/bin/Release/*.nupkg
src/DemaConsulting.CanvasNet.Pdf/bin/Release/*.snupkg

# Runs CodeQL security and quality analysis, gathering results to include
# in the code quality report.
Expand Down
157 changes: 157 additions & 0 deletions .reviewmark.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ needs-review:
- "README.md" # Root README file
- "requirements.yaml" # Root requirements file
- "**/*.cs" # All C# source and test files
- "**/*.csproj" # All project files (licensing/provenance, embedded resources)
- "**/README.md" # All nested README files (licensing/provenance, fixtures)
- "docs/reqstream/**/*.yaml" # Requirements files
- "docs/design/**/*.md" # Design documentation files
- "docs/verification/**/*.md" # Verification documentation files
Expand Down Expand Up @@ -437,6 +439,31 @@ reviews:
- "test/DemaConsulting.CanvasNet.Tests/Drawing/ScanlineRasterizerTests.cs" # gradient rasterization tests
- "test/DemaConsulting.CanvasNet.Tests/Canvas/SurfaceTests.cs" # per-pixel-color CompositeOverSpan tests

# CanvasNet-Drawing-TilePaint Review (one per unit)
- id: CanvasNet-Drawing-TilePaint
title: Review that CanvasNet Drawing TilePaint Implementation is Correct
context:
- "docs/design/canvas-net.md"
- "docs/reqstream/canvas-net.yaml"
- "docs/design/canvas-net/drawing.md"
- "docs/reqstream/canvas-net/drawing.yaml"
- "docs/design/canvas-net/drawing/path-filler.md"
- "docs/reqstream/canvas-net/drawing/path-filler.yaml"
- "docs/design/canvas-net/drawing/gradient-paint.md"
- "docs/reqstream/canvas-net/drawing/gradient-paint.yaml"
paths:
- "docs/reqstream/canvas-net/drawing/tile-paint.yaml" # unit requirements
- "docs/design/canvas-net/drawing/tile-paint.md" # unit design
- "docs/verification/canvas-net/drawing/tile-paint.md" # unit verification
- "src/DemaConsulting.CanvasNet/Drawing/TilePaint.cs" # public tile paint source
- "src/DemaConsulting.CanvasNet/Drawing/TilePaintEvaluator.cs" # internal helper source
- "src/DemaConsulting.CanvasNet/Drawing/PathFiller.cs" # tile Fill overload
- "src/DemaConsulting.CanvasNet/Drawing/ScanlineRasterizer.cs" # tile-aware rasterization
- "test/DemaConsulting.CanvasNet.Tests/Drawing/TilePaintTests.cs" # unit tests
- "test/DemaConsulting.CanvasNet.Tests/Drawing/TilePaintEvaluatorTests.cs" # unit tests
- "test/DemaConsulting.CanvasNet.Tests/Drawing/PathFillerTests.cs" # tile Fill overload tests
- "test/DemaConsulting.CanvasNet.Tests/Drawing/ScanlineRasterizerTests.cs" # tile rasterization tests

# CanvasNet-Fonts Review (one per subsystem)
- id: CanvasNet-Fonts
title: Review that CanvasNet Fonts Subsystem Implementation is Correct
Expand All @@ -448,6 +475,7 @@ reviews:
- "docs/design/canvas-net/fonts.md" # subsystem design
- "docs/verification/canvas-net/fonts.md" # subsystem verification
- "test/DemaConsulting.CanvasNet.Tests/TestSupport/SyntheticFontBuilder.cs" # shared test helper
- "src/DemaConsulting.CanvasNet/Fonts/BundledFonts/README.md" # bundled-font provenance/licensing documentation

# CanvasNet-Fonts-TrueTypeFont Review (one per unit)
- id: CanvasNet-Fonts-TrueTypeFont
Expand All @@ -465,17 +493,58 @@ reviews:
- "src/DemaConsulting.CanvasNet/Fonts/SfntContainer.cs" # internal helper source
- "src/DemaConsulting.CanvasNet/Fonts/CmapTable.cs" # internal helper source
- "src/DemaConsulting.CanvasNet/Fonts/GlyfLocaReader.cs" # internal helper source
- "src/DemaConsulting.CanvasNet/Fonts/IGlyphOutlineSource.cs" # internal outline-backend dispatch abstraction
- "src/DemaConsulting.CanvasNet/Fonts/CffTable.cs" # internal helper source (CFF structural parsing)
- "src/DemaConsulting.CanvasNet/Fonts/CffCharstringInterpreter.cs" # internal helper source (Type 2 interpreter)
- "src/DemaConsulting.CanvasNet/Fonts/Type1Table.cs" # internal helper source (Type 1 structural parsing)
- "src/DemaConsulting.CanvasNet/Fonts/Type1CharstringInterpreter.cs" # internal helper (Type 1 interpreter)
- "src/DemaConsulting.CanvasNet/Fonts/Type1CharstringDecryption.cs" # internal helper (eexec decryption)
- "src/DemaConsulting.CanvasNet/Fonts/Type1PfbReader.cs" # internal helper source (standalone .pfb auto-detect)
- "src/DemaConsulting.CanvasNet/Fonts/Type1PfaReader.cs" # internal helper source (standalone .pfa auto-detect)
- "src/DemaConsulting.CanvasNet/Fonts/Type1StandardGlyphNames.cs" # internal helper (default glyph-name encoding)
- "src/DemaConsulting.CanvasNet/Fonts/CffStandardEncoding.cs" # internal helper (CFF standard encoding table)
- "src/DemaConsulting.CanvasNet/Fonts/HmtxHheaReader.cs" # internal helper source
- "src/DemaConsulting.CanvasNet/Fonts/KernTable.cs" # internal helper source
- "src/DemaConsulting.CanvasNet/Fonts/NameTable.cs" # internal helper source (name-table resolution)
- "src/DemaConsulting.CanvasNet/Fonts/StyleTable.cs" # internal helper source (style derivation)
- "src/DemaConsulting.CanvasNet/Fonts/NamespaceDoc.cs" # Fonts namespace documentation
- "test/DemaConsulting.CanvasNet.Tests/Fonts/SfntContainerTests.cs" # unit tests
- "test/DemaConsulting.CanvasNet.Tests/Fonts/CmapTableTests.cs" # unit tests
- "test/DemaConsulting.CanvasNet.Tests/Fonts/GlyfLocaReaderTests.cs" # unit tests
- "test/DemaConsulting.CanvasNet.Tests/Fonts/CffTableTests.cs" # unit tests
- "test/DemaConsulting.CanvasNet.Tests/Fonts/CffCharstringInterpreterTests.cs" # unit tests
- "test/DemaConsulting.CanvasNet.Tests/Fonts/Type1TableTests.cs" # unit tests
- "test/DemaConsulting.CanvasNet.Tests/Fonts/Type1CharstringInterpreterTests.cs" # unit tests
- "test/DemaConsulting.CanvasNet.Tests/Fonts/Type1PfbReaderTests.cs" # unit tests
- "test/DemaConsulting.CanvasNet.Tests/Fonts/Type1PfaReaderTests.cs" # unit tests
- "test/DemaConsulting.CanvasNet.Tests/Fonts/HmtxHheaReaderTests.cs" # unit tests
- "test/DemaConsulting.CanvasNet.Tests/Fonts/KernTableTests.cs" # unit tests
- "test/DemaConsulting.CanvasNet.Tests/Fonts/NameTableTests.cs" # unit tests
- "test/DemaConsulting.CanvasNet.Tests/Fonts/StyleTableTests.cs" # unit tests
- "test/DemaConsulting.CanvasNet.Tests/Fonts/TrueTypeFontTests.cs" # unit tests
- "test/DemaConsulting.CanvasNet.Tests/Fonts/TrueTypeFontRealFontIntegrationTests.cs" # unit tests
- "test/DemaConsulting.CanvasNet.Tests/TestSupport/SyntheticFontBuilder.cs" # shared test helper
- "test/DemaConsulting.CanvasNet.Tests/FontFixtures/README.md" # fixture provenance/licensing documentation

# CanvasNet-Fonts-SystemFontCatalog Review (one per unit)
- id: CanvasNet-Fonts-SystemFontCatalog
title: Review that CanvasNet Fonts SystemFontCatalog Implementation is Correct
context:
- "docs/design/canvas-net.md"
- "docs/reqstream/canvas-net.yaml"
- "docs/design/canvas-net/fonts.md"
- "docs/reqstream/canvas-net/fonts.yaml"
paths:
- "docs/reqstream/canvas-net/fonts/system-font-catalog.yaml" # unit requirements
- "docs/design/canvas-net/fonts/system-font-catalog.md" # unit design
- "docs/verification/canvas-net/fonts/system-font-catalog.md" # unit verification
- "docs/sysml2/model/canvas-net/fonts/system-font-catalog.sysml" # unit model
- "src/DemaConsulting.CanvasNet/Fonts/SystemFontCatalog.cs" # unit source
- "src/DemaConsulting.CanvasNet/Fonts/BundledFonts/README.md" # bundled-font provenance/licensing documentation
- "src/DemaConsulting.CanvasNet/DemaConsulting.CanvasNet.csproj" # embedded-resource/license packaging
- "test/DemaConsulting.CanvasNet.Tests/Fonts/SystemFontCatalogTests.cs" # unit tests
- "test/DemaConsulting.CanvasNet.Tests/Fonts/SystemFontCatalogRealDiscoveryIntegrationTests.cs" # unit tests
- "test/DemaConsulting.CanvasNet.Tests/Fonts/BundledLiberationFontsTests.cs" # unit tests

# CanvasNet-Rendering Review (one per subsystem)
- id: CanvasNet-Rendering
Expand Down Expand Up @@ -611,6 +680,94 @@ reviews:
- "test/DemaConsulting.CanvasNet.Svg.Tests/SvgCodecTests.cs" # unit tests
- "test/DemaConsulting.CanvasNet.Svg.Tests/SvgFixtureTests.cs" # fixture conformance tests

# CanvasNetPdf-Architecture Review (one per system)
- id: CanvasNetPdf-Architecture
title: Review that CanvasNetPdf Architecture Satisfies Requirements
context:
- "README.md"
- "docs/user_guide/**/*.md"
paths:
- "docs/reqstream/canvas-net-pdf.yaml" # system requirements
- "docs/design/introduction.md" # design introduction
- "docs/design/canvas-net-pdf.md" # system design
- "docs/verification/introduction.md" # verification introduction
- "docs/verification/canvas-net-pdf.md" # system verification
- "test/DemaConsulting.CanvasNet.Pdf.Tests/PdfSystemIntegrationTests.cs" # integration tests

# CanvasNetPdf-Design Review (one per system)
- id: CanvasNetPdf-Design
title: Review that CanvasNetPdf Design is Consistent and Complete
context:
- "docs/reqstream/canvas-net-pdf.yaml"
paths:
- "docs/reqstream/canvas-net-pdf/platform-requirements.yaml" # platform requirements
- "docs/design/introduction.md" # design introduction
- "docs/design/canvas-net-pdf.md" # system design
- "docs/design/canvas-net-pdf/**/*.md" # all system design documents

# CanvasNetPdf-Verification Review (one per system)
- id: CanvasNetPdf-Verification
title: Review that CanvasNetPdf Verification is Consistent and Complete
context:
- "docs/reqstream/canvas-net-pdf.yaml"
paths:
- "docs/verification/introduction.md" # verification introduction
- "docs/verification/canvas-net-pdf.md" # system verification
- "docs/verification/canvas-net-pdf/**/*.md" # all verification documents

# CanvasNetPdf-AllRequirements Review (one per system)
- id: CanvasNetPdf-AllRequirements
title: Review that All CanvasNetPdf Requirements are Complete
context:
- "docs/design/canvas-net-pdf.md"
- "docs/reqstream/canvas-net-pdf.yaml"
paths:
- "docs/reqstream/canvas-net-pdf/**/*.yaml" # all requirements files

# CanvasNetPdf-PdfDocument Review (one per direct unit)
- id: CanvasNetPdf-PdfDocument
title: Review that CanvasNetPdf PdfDocument Implementation is Correct
context:
- "docs/design/canvas-net-pdf.md"
- "docs/reqstream/canvas-net-pdf.yaml"
paths:
- "docs/reqstream/canvas-net-pdf/pdf-document.yaml" # unit requirements
- "docs/design/canvas-net-pdf/pdf-document.md" # unit design
- "docs/verification/canvas-net-pdf/pdf-document.md" # unit verification
- "docs/sysml2/model/canvas-net-pdf/pdf-document.sysml" # unit SysML2 model
- "src/DemaConsulting.CanvasNet.Pdf/PdfDocument.cs" # phase 1 unit source (public API)
- "src/DemaConsulting.CanvasNet.Pdf/PdfDocument.Tokenizer.cs" # phase 1 unit source (tokenizer)
- "src/DemaConsulting.CanvasNet.Pdf/PdfDocument.ObjectModel.cs" # phase 1 unit source (object model)
- "src/DemaConsulting.CanvasNet.Pdf/PdfDocument.Xref.cs" # phase 1 unit source (xref resolution)
- "src/DemaConsulting.CanvasNet.Pdf/PdfDocument.PageTree.cs" # phase 1 unit source (page-tree traversal)
- "src/DemaConsulting.CanvasNet.Pdf/PdfDocument.ContentStream.cs" # phase 2 unit source (content stream)
- "src/DemaConsulting.CanvasNet.Pdf/PdfDocument.GraphicsState.cs" # phase 2 unit source (graphics state)
- "src/DemaConsulting.CanvasNet.Pdf/PdfDocument.PathOps.cs" # phase 2 unit source (path ops)
- "src/DemaConsulting.CanvasNet.Pdf/PdfDocument.Color.cs" # phase 3 unit source (device color)
- "src/DemaConsulting.CanvasNet.Pdf/PdfDocument.Filters.cs" # phase 3 unit source (filter pipeline)
- "src/DemaConsulting.CanvasNet.Pdf/PdfDocument.Filters.Lzw.cs" # phase 7 unit source (filters)
- "src/DemaConsulting.CanvasNet.Pdf/PdfDocument.Filters.Ascii.cs" # phase 7 unit source (filters)
- "src/DemaConsulting.CanvasNet.Pdf/PdfDocument.Filters.RunLength.cs" # phase 7 unit source (filters)
- "src/DemaConsulting.CanvasNet.Pdf/PdfDocument.Images.cs" # phase 3 unit source (image XObjects)
- "src/DemaConsulting.CanvasNet.Pdf/PdfDocument.CcittFax.cs" # phase 15 unit source (CCITT G4 fax)
- "src/DemaConsulting.CanvasNet.Pdf/PdfDocument.Fonts.cs" # phase 4 unit source (font resolution)
- "src/DemaConsulting.CanvasNet.Pdf/PdfDocument.Fonts.Type0.cs" # phase 9 unit source (composite fonts)
- "src/DemaConsulting.CanvasNet.Pdf/PdfDocument.Fonts.Type1.cs" # phase B unit source (Type 1 simple fonts)
- "src/DemaConsulting.CanvasNet.Pdf/PdfDocument.Fonts.Type3.cs" # Type 3 glyph-procedure fonts
- "src/DemaConsulting.CanvasNet.Pdf/PdfDocument.Fonts.ToUnicode.cs" # phase 10 unit source (ToUnicode CMap)
- "src/DemaConsulting.CanvasNet.Pdf/PdfDocument.Encryption.cs" # encryption/decryption (RC4, AESV2, AESV3 R5/R6)
- "src/DemaConsulting.CanvasNet.Pdf/PdfDocument.Functions.cs" # pattern phase 1 (sampled function)
- "src/DemaConsulting.CanvasNet.Pdf/PdfDocument.Patterns.cs" # pattern phase (shared /Pattern dispatch)
- "src/DemaConsulting.CanvasNet.Pdf/PdfDocument.Patterns.Shading.cs" # pattern phase (shading patterns)
- "src/DemaConsulting.CanvasNet.Pdf/PdfDocument.Patterns.Tiling.cs" # pattern phase (tiling patterns)
- "src/DemaConsulting.CanvasNet.Pdf/PdfDocument.FontFallback.cs" # phase 6 unit source (font fallback)
- "src/DemaConsulting.CanvasNet.Pdf/PdfDocument.Text.cs" # phase 4 unit source (text rendering)
- "src/DemaConsulting.CanvasNet.Pdf/PdfPageInfo.cs" # phase 1 unit source (supporting record struct)
- "src/DemaConsulting.CanvasNet.Pdf/NamespaceDoc.cs" # Pdf namespace documentation
- "test/DemaConsulting.CanvasNet.Pdf.Tests/PdfDocumentTests.cs" # unit tests
- "test/DemaConsulting.CanvasNet.Pdf.Tests/PdfSystemIntegrationTests.cs" # integration tests
- "test/DemaConsulting.CanvasNet.Pdf.Tests/PdfFixtureTests.cs" # fixture conformance tests

# OTS-BuildMark Review (one per OTS item)
- id: OTS-BuildMark
title: Review that BuildMark Provides Required Functionality
Expand Down
2 changes: 2 additions & 0 deletions CanvasNet.slnx
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@
<Folder Name="/src/">
<Project Path="src/DemaConsulting.CanvasNet/DemaConsulting.CanvasNet.csproj" />
<Project Path="src/DemaConsulting.CanvasNet.Svg/DemaConsulting.CanvasNet.Svg.csproj" />
<Project Path="src/DemaConsulting.CanvasNet.Pdf/DemaConsulting.CanvasNet.Pdf.csproj" />
</Folder>
<Folder Name="/test/">
<Project Path="test/DemaConsulting.CanvasNet.Tests/DemaConsulting.CanvasNet.Tests.csproj" />
<Project Path="test/DemaConsulting.CanvasNet.Svg.Tests/DemaConsulting.CanvasNet.Svg.Tests.csproj" />
<Project Path="test/DemaConsulting.CanvasNet.Pdf.Tests/DemaConsulting.CanvasNet.Pdf.Tests.csproj" />
</Folder>
</Solution>
Loading
Loading