#1 PDF Application on GitHub that lets you edit PDFs on any device anywhere
V2: Convert Tool (#3828)
๐ Dynamic Processing Strategies
- Adaptive routing: Same tool uses different backend endpoints based on
file analysis
- Combined vs separate processing: Intelligently chooses between merge
operations and individual file processing
- Cross-format workflows: Enable complex conversions like "mixed files โ
PDF" that other tools can't handle
โ๏ธ Format-Specific Intelligence
Each conversion type gets tailored options:
- HTML/ZIP โ PDF: Zoom controls (0.1-3.0 increments) with live preview
- Email โ PDF: Attachment handling, size limits, recipient control
- PDF โ PDF/A: Digital signature detection with warnings
- Images โ PDF: Smart combining vs individual file options
File Architecture
Core Implementation:
โโโ Convert.tsx # Main stepped workflow UI
โโโ ConvertSettings.tsx # Centralized settings with smart detection
โโโ GroupedFormatDropdown.tsx # Enhanced format selector with grouping
โโโ useConvertParameters.ts # Smart detection & parameter management
โโโ useConvertOperation.ts # Multi-strategy processing logic
โโโ Settings Components:
โโโ ConvertFromWebSettings.tsx # HTML zoom controls
โโโ ConvertFromEmailSettings.tsx # Email attachment options
โโโ ConvertToPdfaSettings.tsx # PDF/A with signature detection
โโโ ConvertFromImageSettings.tsx # Image PDF options
โโโ ConvertToImageSettings.tsx # PDF to image options
Utility Layer
Utils & Services:
โโโ convertUtils.ts # Format detection & endpoint routing
โโโ fileResponseUtils.ts # Generic API response handling
โโโ setupTests.ts # Enhanced test environment with crypto mocks
Testing & Quality
Comprehensive Test Coverage
Test Suite:
โโโ useConvertParameters.test.ts # Parameter logic & smart detection
โโโ useConvertParametersAutoDetection.test.ts # File type analysis
โโโ ConvertIntegration.test.tsx # End-to-end conversion workflows
โโโ ConvertSmartDetectionIntegration.test.tsx # Mixed file scenarios
โโโ ConvertE2E.spec.ts # Playwright browser tests
โโโ convertUtils.test.ts # Utility function validation
โโโ fileResponseUtils.test.ts # API response handling
Advanced Test Features
- Crypto API mocking: Proper test environment for file hashing
- File.arrayBuffer() polyfills: Complete browser API simulation
- Multi-file scenario testing: Complex batch processing validation
- CI/CD integration: Vitest runs in GitHub Actions with proper artifacts
---------
Co-authored-by: Connor Yoh <connor@stirlingpdf.com>
Co-authored-by: Anthony Stirling <77850077+Frooodle@users.noreply.github.com> C
ConnorYoh committed
9c9acbfb5bdda9c91b741d998043fc53e5652f81
Parent: 8881f19
Committed by GitHub <noreply@github.com>
on 8/1/2025, 3:08:04 PM