Files
pdfme/memory_bank/systemPatterns.md
devin-ai-integration[bot] e624c3b3cb Add Cline Memory Bank and .clinerules (#817)
* 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>
2025-03-06 11:26:46 +09:00

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

  1. Monorepo Structure: Manage all packages in a single repository for consistent development and releases

  2. Package Separation: Separated packages by functionality allowing import of only needed features

  3. pdf-lib Fork: Forked and extended pdf-lib for CJK font and SVG support

  4. TypeScript Adoption: For type safety and improved code quality

Design Patterns

  1. Factory Pattern: Abstraction for templates and PDF generation

  2. Adapter Pattern: Ensuring compatibility between different environments (browser/Node.js)

  3. Composite Pattern: Building complex PDF document structures

  4. Observer Pattern: State change notifications in UI components