mirror of
https://github.com/pdfme/pdfme.git
synced 2026-04-20 14:10:52 -04:00
* Add English version of Cline Memory Bank and .clinerules Co-Authored-By: Kyohei Fukuda <kyouhei.fukuda0729@gmail.com> * Update .clinerules to enhance project guidelines and remove outdated English version --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: Kyohei Fukuda <kyouhei.fukuda0729@gmail.com> Co-authored-by: Kyohei Fukuda <kyoheif@wix.com>
1.3 KiB
1.3 KiB
PDFme System Patterns
Architecture Overview
PDFme adopts a modularized package structure:
pdfme/
├── packages/
│ ├── common/ # Common type definitions and utilities
│ ├── generator/ # PDF generation engine
│ ├── schemas/ # Template schema definitions
│ ├── ui/ # React-based designer and viewer
│ ├── manipulator/ # PDF manipulation tools
│ └── converter/ # PDF conversion utilities
├── website/ # Documentation site
└── playground/ # Development test environment
Key Technical Decisions
-
Monorepo Structure: Manage all packages in a single repository for consistent development and releases
-
Package Separation: Separated packages by functionality allowing import of only needed features
-
pdf-lib Fork: Forked and extended pdf-lib for CJK font and SVG support
-
TypeScript Adoption: For type safety and improved code quality
Design Patterns
-
Factory Pattern: Abstraction for templates and PDF generation
-
Adapter Pattern: Ensuring compatibility between different environments (browser/Node.js)
-
Composite Pattern: Building complex PDF document structures
-
Observer Pattern: State change notifications in UI components