PdfForge.Core
1.2.0
See the version list below for details.
dotnet add package PdfForge.Core --version 1.2.0
NuGet\Install-Package PdfForge.Core -Version 1.2.0
<PackageReference Include="PdfForge.Core" Version="1.2.0" />
<PackageVersion Include="PdfForge.Core" Version="1.2.0" />
<PackageReference Include="PdfForge.Core" />
paket add PdfForge.Core --version 1.2.0
#r "nuget: PdfForge.Core, 1.2.0"
#:package PdfForge.Core@1.2.0
#addin nuget:?package=PdfForge.Core&version=1.2.0
#tool nuget:?package=PdfForge.Core&version=1.2.0
PdfForge.Core — Enterprise PDF Generation Engine
Proprietary Closed-Source Software
30-day free trial + Perpetual licensing model.
See LICENSE.md and SUPPORT.md for licensing details.
A high-performance, multi-tenant PDF generation engine for enterprise SaaS platforms. Built with .NET 10.0+, designed for scale, security, and extensibility.
Table of Contents
- About
- Features
- Getting Started
- Configuration
- Security
- Release Notes
- What's Next
- Licensing
- License
- Support
About
PDF Forge solves the challenge of generating high-quality PDFs in enterprise SaaS environments where:
- Multi-tenancy is critical for data isolation and compliance
- Performance directly impacts user experience (sub-second PDF generation)
- Security is non-negotiable (decompression bombs, injection attacks, timing attacks)
- Reliability means 99.9%+ uptime with comprehensive testing
The engine converts multiple formats (HTML, Word, Excel, images, text) into production-grade PDFs while maintaining strict tenant boundaries and security standards.
Where it fits:
- SaaS platforms requiring PDF generation
- Enterprise document management systems
- Automated reporting pipelines
- Batch processing workflows with webhooks
Features
Core Capabilities
- HTML to PDF — Render complex web layouts
- Word (DOCX) to PDF — Preserve formatting and styles
- Excel (XLSX) to PDF — Multi-sheet support with optional horizontal pagination
- Image to PDF — With bounds checking
- Text to PDF — Simple text rendering
- Template Rendering — Reusable document templates
- Batch Processing — High-volume document generation
- Webhooks — Job completion notifications
Enterprise Features
- Multi-Tenant Isolation — AsyncLocal ambient context, thread-safe
- High Performance — Object pooling, caching, async/await
- Security Hardening — JPEG bomb prevention, key rotation, constant-time validation
- Observability — Correlation IDs for distributed tracing
- Comprehensive Testing — 1093+ unit tests (100% passing)
- Scalability — Horizontal scaling ready
Architecture
High-Level Design
┌─────────────────────────────────────────────────────────────┐
│ API Layer (REST/gRPC) │
├─────────────────────────────────────────────────────────────┤
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────┐ │
│ │ TenantScope │ │ CorrelationID│ │ ResourceLimits │ │
│ │ (Context) │ │ (Tracing) │ │ (DoS Protection) │ │
│ └──────────────┘ └──────────────┘ └──────────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ ┌────────────┐ ┌────────────┐ ┌────────────┐ │
│ │ HTML │ │ Word │ │ Excel │ ... │
│ │ Converter │ │ Converter │ │ Converter │ │
│ └────────────┘ └────────────┘ └────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ ┌────────────────┐ ┌────────────┐ ┌────────────┐ │
│ │ Font Manager │ │ Layout │ │ Graphics │ │
│ │ │ │ Engine │ │ Renderer │ │
│ └────────────────┘ └────────────┘ └────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ ┌──────────────────┐ ┌──────────────┐ ┌────────────┐ │
│ │ MemoryStreamPool │ │ CssCache │ │ TextLayout │ │
│ │ (Performance) │ │ (Performance)│ │ Cache │ │
│ └──────────────────┘ └──────────────┘ └────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ PDF Writer & Storage Layer │
└─────────────────────────────────────────────────────────────┘
Design Patterns
- Multi-Tenant: AsyncLocal<T> for ambient context isolation
- Performance: Object pooling + LRU caching at hot paths
- Security: Layered validation (input sanitization, bounds checking, rate limiting)
- Observability: Correlation IDs flowing through async call chains
- Extensibility: Plugin architecture with interfaces
Getting Started
Installation
dotnet add package PdfForge.Core
Requirements: .NET 10.0+ SDK
Quick Start
using PdfForge;
using PdfForge.Logging;
// 1. Setup DI
var services = new ServiceCollection();
services.AddPdfForge(new PdfForgeOptions
{
StorageRootPath = "/tmp/pdfs"
});
var provider = services.BuildServiceProvider();
// 2. Create document
var doc = provider.GetRequiredService<PdfDocument>();
var page = new PdfPage(PdfRectangle.Letter);
doc.AddPage(page);
// 3. Write PDF
await doc.WriteToFileAsync("output.pdf", CancellationToken.None);
Samples
Runnable sample projects are in the samples/ directory:
- HtmlBarcodeBatchSample — 4-page HTML template rendering, barcode overlay, batch generation (55 records), merged PDF output
- NuGetPackageValidationSample — Validates consuming PdfForge.Core as a NuGet package
# HTML + barcode batch sample (default)
dotnet run --project samples/HtmlBarcodeBatchSample/HtmlBarcodeBatchSample.csproj
# All options & fixes demo
dotnet run --project samples/HtmlBarcodeBatchSample/HtmlBarcodeBatchSample.csproj -- --all-options
# Word document sample
dotnet run --project samples/HtmlBarcodeBatchSample/HtmlBarcodeBatchSample.csproj -- --word-test
# Excel sample
dotnet run --project samples/HtmlBarcodeBatchSample/HtmlBarcodeBatchSample.csproj -- --excel-test
# NuGet package consumption validation
dotnet run --project samples/NuGetPackageValidationSample/NuGetPackageValidationSample.csproj
Configuration
Environment Variables
# Storage configuration
PDFFORGE_STORAGE_PATH=/data/pdfs
PDFFORGE_CACHE_SIZE=1000
# Logging
PDFFORGE_LOG_LEVEL=Information
PDFFORGE_ENABLE_TRACING=true
# Performance
PDFFORGE_POOL_MIN_SIZE=4
PDFFORGE_POOL_MAX_SIZE=64
PDFFORGE_CACHE_ENTRIES=1000
Startup Configuration
var options = new PdfForgeOptions
{
StorageRootPath = Environment.GetEnvironmentVariable("PDFFORGE_STORAGE_PATH"),
MaxCacheSize = int.Parse(
Environment.GetEnvironmentVariable("PDFFORGE_CACHE_SIZE") ?? "1000"
)
};
services.AddPdfForge(options);
Resource Limits
// Per-tenant configuration
var limits = JobResourceLimits.CreateForProfessionalTier(
maxOutputPages: 1000,
maxJobDuration: TimeSpan.FromMinutes(5),
maxMemory: 512 * 1024 * 1024 // 512 MB
);
services.AddSingleton(limits);
Security
Built-In Protections
| Threat | Mitigation |
|---|---|
| Decompression Bombs | JPEG bounds checking (50MB max, 16384px, 256MP) |
| Timing Attacks | Constant-time signature comparison |
| Key Compromise | PresignKey rotation (hourly schedule + 5-min grace) |
| XSS Injection | HTML input sanitization |
| Tenant Breach | AsyncLocal<T> isolation + validation |
| DoS Attacks | Resource limits (pages, duration, memory) |
Security Best Practices
Secrets Management
// Use secure configuration, not hardcoded keys var apiKey = configuration["Security:ApiKey"]; // From env/vaultInput Validation
var sanitized = InputSanitizer.SanitizeHtml(userInput);Tenant Isolation
using (new TenantScope(tenantContext)) { // All operations automatically isolated }Audit Logging
logger.LogInformation( "PDF generated for tenant {TenantId}: {DocumentId}", tenantId, documentId );
Compliance
- OWASP Top 10 considerations implemented
- Audit logging for all operations
- Data isolation for multi-tenant compliance
- Full security details: docs/SECURITY-IMPLEMENTATION.md
Release Notes
See CHANGELOG.md for the full release history.
What's Next
Upcoming (Q3 2026)
- Advanced font subsetting
- Enhanced image optimization
- Plugin framework v2
- GraphQL API support
Roadmap
See ROADMAP.md for detailed product roadmap and timelines.
Known Limitations
- Maximum document size: 10GB (design constraint)
- Concurrent jobs per tenant: 100 (configurable)
Licensing
PdfForge is proprietary closed-source software with a commercial licensing model:
30-Day Free Trial
- All features enabled
- No watermark
- No credit card required
- Watermark appears after day 30 (unless licensed)
Perpetual License
- Valid forever (no renewal)
- One-time payment
- All features included
- Commercial use allowed
Purchase: Email rdaforge@gmail.com
Questions: See SUPPORT.md
License
Proprietary Commercial License — See LICENSE for full legal terms.
This software is NOT open source. Source code is proprietary and not publicly available.
Key terms:
- Use PdfForge.Core NuGet package in your projects (with valid license)
- Distribute applications that use PdfForge
- Cannot modify, reverse-engineer, or access source code
- Cannot redistribute NuGet binaries without a valid license
For licensing inquiries: LICENSE.md | SUPPORT.md
Support
PDF Forge
- Email: rdaforge@gmail.com
- Documentation: GitHub Repository
- Security Concerns: Report privately to rdaforge@gmail.com
- Issue Reporting: Contact rdaforge@gmail.com
Last Updated: June 29, 2026
Status: Production Ready
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.