IronPDF vs SelectPdf: Complete .NET Core PDF Library Comparison for HTML to PDF Conversion
Which PDF Library Should You Choose for .NET Core HTML to PDF Conversion?
When developing .NET applications that require PDF generation, selecting the right library can significantly impact your project's success. Whether you're building enterprise reporting systems, generating invoices for small businesses, or creating documentation for individual projects, your choice of PDF library affects everything from development speed to production performance.
This comprehensive comparison examines IronPDF and SelectPdf, two popular .NET PDF libraries, helping you make an informed decision based on real-world usage, features, and value.
Quick Overview: IronPDF vs SelectPdf for .NET Developers
IronPDF delivers a comprehensive PDF solution for the .NET ecosystem, offering seamless HTML to PDF conversion with full support for modern web standards. Built on a Chrome rendering engine, it ensures pixel-perfect accuracy while supporting HTML5, CSS3, and JavaScript. Beyond conversion, IronPDF provides extensive PDF manipulation capabilities including editing, signing, encryption, and cross-platform deployment options.
SelectPdf specializes in HTML to PDF conversion for .NET applications, supporting both .NET Framework and .NET Core platforms. While it offers fundamental PDF generation and manipulation features, SelectPdf focuses primarily on Windows environments with limited cross-platform capabilities.
| Category | Feature/Aspect | IronPDF | SelectPdf | Winner |
|---|---|---|---|---|
| Core Architecture | Design Philosophy | Developer-first, intuitive APIs | Traditional PDF generation approach | IronPDF: Faster development |
| API Complexity | Simple methods like RenderHtmlAsPdf() | Straightforward but limited API | IronPDF: More intuitive | |
| Learning Curve | Hours to productivity | Days for advanced features | IronPDF: Quicker adoption | |
| Platform Support | Cross-Platform | Windows, Linux, macOS, Docker | Windows only | IronPDF: True portability |
| .NET Versions | .NET 10, 9, 8, 7, 6, Core, Framework | .NET Core 2.0+, Framework 4.0+ | IronPDF: Latest framework support | |
| Cloud Platforms | Azure, AWS, Google Cloud ready | Limited Azure support (Basic+) | IronPDF: Cloud-native | |
| Container Support | Native Docker support | No Docker support | IronPDF: Modern deployment | |
| HTML to PDF Rendering | Rendering Engine | Chrome V8 engine | WebKit/Blink hybrid | IronPDF: Better accuracy |
| CSS3/HTML5 Support | 100% modern standards | Good but not complete | IronPDF: Full compliance | |
| JavaScript Execution | Full JavaScript support | Limited JavaScript support | IronPDF: Dynamic content | |
| Rendering Speed | Sub-second for most pages | 2-3 seconds typical | IronPDF: 3x faster | |
| PDF Security | Encryption | AES-256, custom handlers | Standard encryption | Both: Industry standard |
| Digital Signatures | Simple, robust implementation | Complex, manual setup | IronPDF: Easier signing | |
| Permissions | Granular control | Basic permissions | IronPDF: More options | |
| Content Editing | Redaction | Built-in redaction tools | Not supported | IronPDF: Compliance ready |
| Watermarking | HTML/CSS based, full control | Template-based approach | IronPDF: More flexible | |
| Text/Image Stamping | Unified stamper classes | Multiple template types | IronPDF: Consistent API | |
| File Conversions | DOCX to PDF | Native support | Not supported | IronPDF: More formats |
| Image to PDF | Multiple format support | Basic image support | IronPDF: Versatile | |
| PDF to Images | High-quality rasterization | Supported | Both: Available | |
| Performance | Large Documents | Optimized for scale | Performance issues reported | IronPDF: Better at scale |
| Memory Usage | Efficient caching | Higher memory consumption | IronPDF: Lower footprint | |
| Async Support | Native async/await | Limited async support | IronPDF: Modern patterns | |
| Developer Experience | Documentation | Extensive tutorials, examples | Basic documentation | IronPDF: Better resources |
| Code Examples | 100+ ready-to-use samples | Limited examples | IronPDF: More guidance | |
| API Design | Intuitive, fluent interface | Traditional approach | IronPDF: Developer-friendly | |
| Licensing & Pricing | Entry Level | Lite: $799 (1 dev) | Single: $499 (1 dev) | SelectPdf: Lower entry |
| Team License | Plus: $1,499 (3 devs) | 5-Dev: $799 (5 devs) | SelectPdf: More devs/dollar | |
| Enterprise | Professional: $2,999 (10 devs) | Enterprise: $1,199 (unlimited) | SelectPdf: Lower enterprise | |
| Redistribution | +$2,399 royalty-free | OEM licenses available | Both: Options available | |
| Support | Support Included | 24/5 engineering support | Email support only | IronPDF: Better support |
| Response Time | 24-48 hours typical | Variable response times | IronPDF: Predictable SLA | |
| Updates | Monthly releases | Bi-annual releases | IronPDF: More frequent | |
| Best For | Use Cases | Modern apps, cloud, cross-platform | Windows-only, simple conversions | Context-dependent |
| Team Size | Any size, scalable licensing | Small to medium teams | IronPDF: More flexible |
How Does Cross-Platform Compatibility Compare?
IronPDF: Built for Modern Development
IronPDF embraces modern development practices with comprehensive platform support. Whether you're deploying to traditional servers or containerized environments, IronPDF adapts to your infrastructure needs.
Supported .NET Versions:
- C#, VB.NET, F#
- .NET 10, 9, 8, 7, 6, Core (3.1+)
- .NET Standard (2.0+)
- .NET Framework (4.6.2+)
Deployment Environments:
- Operating Systems: Windows, Linux, macOS
- Cloud Platforms: Azure (all tiers), AWS (EC2, Lambda), Google Cloud
- Containers: Docker (Windows & Linux containers)
- Development Tools: Visual Studio, JetBrains Rider, VS Code
This extensive compatibility means you can develop once and deploy anywhere, crucial for teams working with microservices architectures or hybrid cloud deployments. Ready to see how IronPDF works in your environment? Download the library and test it today.
SelectPdf: Windows-Focused Solution
SelectPdf takes a more traditional approach, focusing primarily on Windows environments:
Supported .NET Versions:
- .NET Framework 4.0+
- .NET Core 2.1+ (through .NET Standard 2.0)
- .NET 5-8 (Windows only)
Deployment Limitations:
- Operating Systems: Windows only (no Linux/macOS support)
- Cloud Platforms: Limited Azure support (Basic tier and above)
- Containers: No Docker support
- Notable Restriction: Does not work with Azure Functions or serverless architectures
According to SelectPdf's documentation, "SelectPdf currently works only on Windows systems. There is no support for Linux, Xamarin or other platforms." This limitation can be challenging for teams adopting modern DevOps practices or cloud-native architectures.
Which Library Delivers Better HTML to PDF Conversion?
HTML to PDF Conversion Quality
The core functionality of both libraries centers on HTML to PDF conversion, but their approaches and results differ significantly.
IronPDF Example:
using IronPdf;
// Instantiate Chrome-based renderer for pixel-perfect accuracy
var renderer = new ChromePdfRenderer();
// Configure rendering options for optimal output
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
// Convert HTML with full CSS3, JavaScript, and web font support
var pdf = renderer.RenderHtmlAsPdf(@"
<html>
<head>
<link href='https://fonts.googleapis.com/css?family=Roboto' rel='stylesheet'>
<style>
body { font-family: 'Roboto', sans-serif; }
.chart { width: 100%; height: 400px; }
</style>
</head>
<body>
<h1>Modern Web Standards in PDF</h1>
<canvas id='chart' class='chart'></canvas>
<script>
// JavaScript executes before PDF generation
// Perfect for dynamic charts and content
</script>
</body>
</html>");
// Save with professional quality
pdf.SaveAs("modern-output.pdf");using IronPdf;
// Instantiate Chrome-based renderer for pixel-perfect accuracy
var renderer = new ChromePdfRenderer();
// Configure rendering options for optimal output
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
// Convert HTML with full CSS3, JavaScript, and web font support
var pdf = renderer.RenderHtmlAsPdf(@"
<html>
<head>
<link href='https://fonts.googleapis.com/css?family=Roboto' rel='stylesheet'>
<style>
body { font-family: 'Roboto', sans-serif; }
.chart { width: 100%; height: 400px; }
</style>
</head>
<body>
<h1>Modern Web Standards in PDF</h1>
<canvas id='chart' class='chart'></canvas>
<script>
// JavaScript executes before PDF generation
// Perfect for dynamic charts and content
</script>
</body>
</html>");
// Save with professional quality
pdf.SaveAs("modern-output.pdf");The ChromePdfRenderer class leverages the same rendering engine as Google Chrome, ensuring your PDFs match exactly what users see in their browsers. This approach supports modern web features including CSS Grid, Flexbox, Canvas elements, and complex JavaScript frameworks like React or Angular. For detailed implementation guides, explore the HTML to PDF conversion documentation.
SelectPdf Example:
using SelectPdf;
// Create converter instance
HtmlToPdf converter = new HtmlToPdf();
// Basic configuration options
converter.Options.PdfPageSize = PdfPageSize.A4;
converter.Options.WebPageWidth = 1024;
converter.Options.WebPageHeight = 0; // Auto-detect
// Convert HTML string
PdfDocument doc = converter.ConvertHtmlString(htmlString);
// Save document
doc.Save("output.pdf");
doc.Close();using SelectPdf;
// Create converter instance
HtmlToPdf converter = new HtmlToPdf();
// Basic configuration options
converter.Options.PdfPageSize = PdfPageSize.A4;
converter.Options.WebPageWidth = 1024;
converter.Options.WebPageHeight = 0; // Auto-detect
// Convert HTML string
PdfDocument doc = converter.ConvertHtmlString(htmlString);
// Save document
doc.Save("output.pdf");
doc.Close();While SelectPdf's API is straightforward, developers report limitations with modern web standards. According to GitHub discussions, conversion performance can be slow, with users reporting 3-second conversion times for simple documents. The library also struggles with CSS3 features and JavaScript-heavy content.
Performance Benchmarks
Real-world performance testing reveals significant differences:
- IronPDF: Sub-second conversion for standard web pages
- SelectPdf: 2-3 seconds typical, with reports of 3.5-minute delays on production servers
Learn more about optimizing PDF generation performance in the IronPDF performance guide.
Modern CSS Framework Compatibility: Bootstrap, Tailwind, and Beyond
One critical consideration often overlooked during library evaluation is support for modern CSS frameworks. With Bootstrap, Tailwind CSS, and Foundation powering millions of web applications, the ability to accurately render these frameworks in PDF format can make or break your implementation.
IronPDF: Native Modern Framework Support
IronPDF's Chrome rendering engine provides seamless support for all contemporary CSS frameworks:
- Bootstrap 5: Complete flexbox and CSS Grid rendering for responsive layouts
- Tailwind CSS: Full utility-class support with proper spacing and typography
- Foundation: Advanced CSS3 features render pixel-perfect
- Real-world validation: Successfully renders the Bootstrap homepage and Bootstrap templates
Code Example: Bootstrap Alert Components
using IronPdf;
var renderer = new ChromePdfRenderer();
string bootstrapAlerts = @"
<!DOCTYPE html>
<html>
<head>
<link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
</head>
<body>
<div class='container my-5'>
<h2 class='mb-4'>System Notifications</h2>
<div class='alert alert-success d-flex align-items-center' role='alert'>
<svg class='bi flex-shrink-0 me-2' width='24' height='24'>
<use xlink:href='#check-circle-fill'/>
</svg>
<div>Payment processed successfully!</div>
</div>
<div class='alert alert-warning d-flex align-items-center' role='alert'>
<svg class='bi flex-shrink-0 me-2' width='24' height='24'>
<use xlink:href='#exclamation-triangle-fill'/>
</svg>
<div>Your subscription expires in 7 days.</div>
</div>
<div class='alert alert-info d-flex align-items-center' role='alert'>
<svg class='bi flex-shrink-0 me-2' width='24' height='24'>
<use xlink:href='#info-fill'/>
</svg>
<div>New features available in the dashboard.</div>
</div>
</div>
</body>
</html>";
var pdf = renderer.RenderHtmlAsPdf(bootstrapAlerts);
pdf.SaveAs("bootstrap-alerts.pdf");using IronPdf;
var renderer = new ChromePdfRenderer();
string bootstrapAlerts = @"
<!DOCTYPE html>
<html>
<head>
<link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
</head>
<body>
<div class='container my-5'>
<h2 class='mb-4'>System Notifications</h2>
<div class='alert alert-success d-flex align-items-center' role='alert'>
<svg class='bi flex-shrink-0 me-2' width='24' height='24'>
<use xlink:href='#check-circle-fill'/>
</svg>
<div>Payment processed successfully!</div>
</div>
<div class='alert alert-warning d-flex align-items-center' role='alert'>
<svg class='bi flex-shrink-0 me-2' width='24' height='24'>
<use xlink:href='#exclamation-triangle-fill'/>
</svg>
<div>Your subscription expires in 7 days.</div>
</div>
<div class='alert alert-info d-flex align-items-center' role='alert'>
<svg class='bi flex-shrink-0 me-2' width='24' height='24'>
<use xlink:href='#info-fill'/>
</svg>
<div>New features available in the dashboard.</div>
</div>
</div>
</body>
</html>";
var pdf = renderer.RenderHtmlAsPdf(bootstrapAlerts);
pdf.SaveAs("bootstrap-alerts.pdf");SelectPdf: Limited Modern CSS Support
SelectPdf uses a WebKit/Blink hybrid engine with documented limitations for modern CSS frameworks:
- Incomplete flexbox support: Bootstrap 4+ layouts may not render correctly
- CSS Grid issues: Modern grid-based layouts often fail to display properly
- Performance degradation: Complex Bootstrap layouts can increase conversion times significantly
- Styling inconsistencies: According to developer reports, Bootstrap components often require CSS workarounds
Common Issues Reported:
- Bootstrap navigation bars rendering incorrectly
- Card components with flexbox displaying misaligned
- Responsive grid breakpoints not respected
- Custom Bootstrap themes requiring manual adjustments
Workaround Approach: Developers using SelectPdf with Bootstrap typically need to:
- Create simplified, print-specific versions of layouts
- Avoid flexbox in favor of table-based layouts
- Test extensively with each Bootstrap component
- Maintain separate CSS for PDF generation
For applications already using Bootstrap for their web interface, this workaround approach significantly increases development and maintenance costs.
For more information on CSS framework compatibility, see the Bootstrap & Flexbox CSS Guide.
How Do Security Features Compare Between Libraries?
PDF Encryption and Protection
Both libraries offer encryption capabilities, but implementation complexity varies:
IronPDF Security Implementation:
using IronPdf;
using IronPdf.Security;
// Load or create a PDF document
var pdf = PdfDocument.FromFile("sensitive-document.pdf");
// Apply comprehensive security settings
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.OwnerPassword = "owner456";
// Granular permission control
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;
pdf.SecuritySettings.AllowUserEditing = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = true;
pdf.SecuritySettings.AllowUserAnnotations = false;
// Use 256-bit AES encryption
pdf.SecuritySettings.EncryptionLevel = EncryptionLevel.AES256Bit;
pdf.SaveAs("secured.pdf");using IronPdf;
using IronPdf.Security;
// Load or create a PDF document
var pdf = PdfDocument.FromFile("sensitive-document.pdf");
// Apply comprehensive security settings
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.OwnerPassword = "owner456";
// Granular permission control
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;
pdf.SecuritySettings.AllowUserEditing = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = true;
pdf.SecuritySettings.AllowUserAnnotations = false;
// Use 256-bit AES encryption
pdf.SecuritySettings.EncryptionLevel = EncryptionLevel.AES256Bit;
pdf.SaveAs("secured.pdf");IronPDF's SecuritySettings class provides a unified interface for all security operations. The API design follows .NET conventions, making it intuitive for developers familiar with the framework. Explore advanced security features in the PDF security documentation.
SelectPdf Security Configuration:
using SelectPdf;
PdfDocument doc = new PdfDocument();
// Set document passwords
doc.Security.OwnerPassword = "owner456";
doc.Security.UserPassword = "user123";
// Configure permissions
doc.Security.CanPrint = false;
doc.Security.CanEditContent = false;
doc.Security.CanCopyContent = false;
doc.Security.CanEditAnnotations = false;
doc.Security.CanFillFormFields = true;
doc.Security.CanAssembleDocument = false;
doc.Save("secured.pdf");
doc.Close();using SelectPdf;
PdfDocument doc = new PdfDocument();
// Set document passwords
doc.Security.OwnerPassword = "owner456";
doc.Security.UserPassword = "user123";
// Configure permissions
doc.Security.CanPrint = false;
doc.Security.CanEditContent = false;
doc.Security.CanCopyContent = false;
doc.Security.CanEditAnnotations = false;
doc.Security.CanFillFormFields = true;
doc.Security.CanAssembleDocument = false;
doc.Save("secured.pdf");
doc.Close();Both libraries support industry-standard encryption, but IronPDF offers more granular control over print permissions and supports custom encryption handlers for specialized requirements.
Which Advanced Features Set These Libraries Apart?
PDF Content Redaction
Content redaction is crucial for compliance with privacy regulations like GDPR and HIPAA.
IronPDF Redaction:
using IronPdf;
// Load document containing sensitive information
PdfDocument pdf = PdfDocument.FromFile("confidential-report.pdf");
// Redact specific content across all pages
pdf.RedactTextOnAllPages("Social Security Number: [0-9]{3}-[0-9]{2}-[0-9]{4}");
pdf.RedactTextOnAllPages("Credit Card: [0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}");
// Redact content on specific pages
pdf.RedactTextOnPage(2, "CONFIDENTIAL");
// Save with redactions permanently applied
pdf.SaveAs("redacted-report.pdf");using IronPdf;
// Load document containing sensitive information
PdfDocument pdf = PdfDocument.FromFile("confidential-report.pdf");
// Redact specific content across all pages
pdf.RedactTextOnAllPages("Social Security Number: [0-9]{3}-[0-9]{2}-[0-9]{4}");
pdf.RedactTextOnAllPages("Credit Card: [0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}");
// Redact content on specific pages
pdf.RedactTextOnPage(2, "CONFIDENTIAL");
// Save with redactions permanently applied
pdf.SaveAs("redacted-report.pdf");IronPDF's redaction feature permanently removes content from PDFs, ensuring sensitive information cannot be recovered. This is essential for legal and healthcare industries. Learn more in the redaction guide.
SelectPdf: Does not offer built-in redaction capabilities, requiring manual workarounds or third-party tools for compliance needs.
Digital Signatures
IronPDF Digital Signature Implementation:
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
// Create renderer and generate PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Contract Agreement</h1>");
// Load certificate with private key
X509Certificate2 cert = new X509Certificate2("certificate.pfx", "password",
X509KeyStorageFlags.Exportable);
// Create and configure signature
var signature = new PdfSignature(cert)
{
SigningContact = "legal@company.com",
SigningLocation = "New York, NY",
SigningReason = "Contract Approval"
};
// Apply signature with timestamp
pdf.Sign(signature);
pdf.SaveAs("signed-contract.pdf");using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
// Create renderer and generate PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Contract Agreement</h1>");
// Load certificate with private key
X509Certificate2 cert = new X509Certificate2("certificate.pfx", "password",
X509KeyStorageFlags.Exportable);
// Create and configure signature
var signature = new PdfSignature(cert)
{
SigningContact = "legal@company.com",
SigningLocation = "New York, NY",
SigningReason = "Contract Approval"
};
// Apply signature with timestamp
pdf.Sign(signature);
pdf.SaveAs("signed-contract.pdf");IronPDF simplifies digital signing with automatic signature field creation and timestamp server support. Explore more in the digital signatures tutorial.
SelectPdf Digital Signature:
using SelectPdf;
PdfDocument doc = new PdfDocument();
PdfPage page = doc.AddPage();
// Manual signature field setup required
string certFile = "certificate.pfx";
PdfDigitalCertificatesCollection certificates =
PdfDigitalCertificatesStore.GetCertificates(certFile, "password");
PdfDigitalCertificate certificate = certificates[0];
// Create signature element with positioning
PdfDigitalSignatureElement signature =
new PdfDigitalSignatureElement(new RectangleF(100, 100, 200, 50), certificate);
signature.Reason = "Contract Approval";
signature.ContactInfo = "legal@company.com";
signature.Location = "New York, NY";
page.Add(signature);
doc.Save("signed.pdf");
doc.Close();using SelectPdf;
PdfDocument doc = new PdfDocument();
PdfPage page = doc.AddPage();
// Manual signature field setup required
string certFile = "certificate.pfx";
PdfDigitalCertificatesCollection certificates =
PdfDigitalCertificatesStore.GetCertificates(certFile, "password");
PdfDigitalCertificate certificate = certificates[0];
// Create signature element with positioning
PdfDigitalSignatureElement signature =
new PdfDigitalSignatureElement(new RectangleF(100, 100, 200, 50), certificate);
signature.Reason = "Contract Approval";
signature.ContactInfo = "legal@company.com";
signature.Location = "New York, NY";
page.Add(signature);
doc.Save("signed.pdf");
doc.Close();SelectPdf requires manual signature field positioning and more complex setup, making it less suitable for automated signing workflows.
Document Format Conversion
IronPDF DOCX to PDF Conversion:
using IronPdf;
// Direct DOCX to PDF conversion
DocxToPdfRenderer renderer = new DocxToPdfRenderer();
// Convert with formatting preservation
PdfDocument pdf = renderer.RenderDocxAsPdf("report.docx");
// Optional: Apply post-conversion modifications
pdf.AddWatermark("<h2 style='color:red;opacity:0.5'>DRAFT</h2>");
pdf.CompressImages(90);
pdf.SaveAs("converted-report.pdf");using IronPdf;
// Direct DOCX to PDF conversion
DocxToPdfRenderer renderer = new DocxToPdfRenderer();
// Convert with formatting preservation
PdfDocument pdf = renderer.RenderDocxAsPdf("report.docx");
// Optional: Apply post-conversion modifications
pdf.AddWatermark("<h2 style='color:red;opacity:0.5'>DRAFT</h2>");
pdf.CompressImages(90);
pdf.SaveAs("converted-report.pdf");IronPDF's native DOCX support eliminates the need for Microsoft Office dependencies. This feature is particularly valuable for server environments where Office installation isn't feasible. Learn more about DOCX to PDF conversion.
SelectPdf: Does not support DOCX to PDF conversion, limiting document processing capabilities.
Watermarking and Stamping
IronPDF Advanced Watermarking:
using IronPdf;
var pdf = PdfDocument.FromFile("document.pdf");
// HTML-based watermark with CSS styling
string watermarkHtml = @"
<div style='
font-size: 48px;
color: rgba(255, 0, 0, 0.3);
transform: rotate(-45deg);
text-align: center;
font-weight: bold;
'>CONFIDENTIAL</div>";
pdf.ApplyWatermark(watermarkHtml, 50, VerticalAlignment.Middle, HorizontalAlignment.Center);
// Add page numbers with custom formatting
pdf.AddHtmlFooters(new HtmlHeaderFooter
{
HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>",
DrawDividerLine = true
});
pdf.SaveAs("watermarked.pdf");using IronPdf;
var pdf = PdfDocument.FromFile("document.pdf");
// HTML-based watermark with CSS styling
string watermarkHtml = @"
<div style='
font-size: 48px;
color: rgba(255, 0, 0, 0.3);
transform: rotate(-45deg);
text-align: center;
font-weight: bold;
'>CONFIDENTIAL</div>";
pdf.ApplyWatermark(watermarkHtml, 50, VerticalAlignment.Middle, HorizontalAlignment.Center);
// Add page numbers with custom formatting
pdf.AddHtmlFooters(new HtmlHeaderFooter
{
HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>",
DrawDividerLine = true
});
pdf.SaveAs("watermarked.pdf");IronPDF's HTML-based approach to watermarking provides unlimited customization options using familiar web technologies. For more examples, visit the watermarking guide.
What Are the Real Costs of Each Solution?
IronPDF Licensing Structure
IronPDF's transparent pricing offers flexibility for teams of all sizes (pricing as of 2025):
- Lite License: $799 - 1 developer, 1 location, 1 project
- Plus License: $1,199 - 3 developers, 3 locations, 3 projects
- Professional License: $2,399 - 10 developers, 10 locations, 10 projects
- Unlimited License: $4,799 - Unlimited developers and projects
Value-Added Options:
- Royalty-free redistribution: +$2,399
- Extended support and updates: $1,199/year
- Iron Suite: $1,498 - Access to 9 Iron Software products
All licenses include:
- 30-day money-back guarantee
- Perpetual license (one-time payment)
- 1 year of support and updates
- Development, staging, and production use
Ready to evaluate IronPDF in your environment? Start your free 30-day trial with full functionality and no watermarks.
SelectPdf Pricing Analysis
Based on SelectPdf's current pricing:
- Single Developer: $499 - 1 developer, 1 deployment
- Single Developer OEM: $799 - 1 developer, unlimited deployments
- 5-Developers: $799 - Up to 5 developers, 10 deployments
- 5-Developers OEM: $1,099 - Up to 5 developers, unlimited deployments deployments
- Enterprise: $1,199 - Unlimited developers, 100 deployments
- Enterprise OEM: $1,599 - Unlimited developers, unlimited deployments
Important Limitations:
- Community Edition limited to 5-page PDFs
- Annual maintenance renewal required for updates
- No suite options for multiple products
- Limited refund policy
Total Cost of Ownership Comparison
Consider these factors beyond initial licensing:
Development Time: IronPDF's intuitive API and extensive documentation reduce development time by an estimated 40-60% compared to SelectPdf, based on developer feedback.
Platform Limitations: SelectPdf's Windows-only restriction may require additional infrastructure costs for cross-platform deployments.
Support Costs: IronPDF includes 24/5 engineering support, while SelectPdf offers email-only support, potentially increasing resolution times for critical issues.
How Does Documentation and Support Compare?
IronPDF: Comprehensive Developer Resources
IronPDF prioritizes developer success with extensive resources:
- Documentation Library: 200+ articles covering every feature
- Code Examples: 100+ ready-to-run samples in C# and VB.NET
- Video Tutorials: Step-by-step visual guides
- API Reference: Complete class and method documentation
- 24/5 Engineering Support: Direct access to the development team
- Community Forum: Active developer community
The documentation follows a task-oriented approach, helping developers find solutions quickly. Each feature includes working examples, best practices, and troubleshooting guides.
SelectPdf: Basic Documentation
SelectPdf provides:
- Standard API documentation
- Limited code examples
- Email support during business hours
- Basic troubleshooting guides
According to developer reviews on Stack Overflow, users often struggle with performance issues and limited documentation for advanced scenarios.
What Do Real Developers Say?
Performance Feedback
Stack Overflow discussions reveal common SelectPdf issues:
- "It takes 3 seconds to convert html to pdf on .NET Core"
- "Can have a big hit on your build time and deploy package size"
- "The same conversion takes about 3.5 minutes on the web server"
In contrast, IronPDF users report consistent sub-second conversion times and efficient resource usage.
Developer Experience
From GitHub issues, SelectPdf users note:
- Limited modern CSS support
- Performance degradation with complex HTML
- 5-page limitation in free version discovered after implementation
IronPDF consistently receives praise for:
- Intuitive API design
- Excellent rendering quality
- Responsive support team
- Regular updates and improvements
Want to experience the difference yourself? Book a personalized demo with our engineering team.
Which Library Handles Enterprise Requirements Better?
Compliance and Security
IronPDF provides enterprise-grade features:
- GDPR-compliant redaction tools
- HIPAA-ready encryption
- SOC 2 Type II compliance
- Digital signature validation
- Audit trail support
SelectPdf offers basic security but lacks:
- Content redaction
- Advanced signature validation
- Compliance-specific features
- Audit logging capabilities
Scalability and Performance
Enterprise applications demand consistent performance at scale. Performance testing shows:
IronPDF:
- Handles 1000+ page documents efficiently
- Native async/await support for high concurrency
- Optimized memory management
- Thread-safe operations
SelectPdf:
- Performance issues with large documents
- Limited async support
- Higher memory consumption
- Threading limitations reported
Conclusion: Making the Right Choice for Your PDF Needs
Both IronPDF and SelectPdf serve the .NET PDF generation market, but they target different use cases and development scenarios.
Choose IronPDF when you need:
- Cross-platform deployment (Linux, macOS, Docker)
- Modern web standards support (CSS3, JavaScript frameworks)
- Advanced features (redaction, DOCX conversion, digital signatures)
- Enterprise compliance requirements
- Professional support and regular updates
- Cloud-native architecture support
Consider SelectPdf for:
- Windows-only environments
- Simple HTML to PDF conversion
- Budget-conscious projects with basic requirements
- Small documents (under 5 pages for free version)
IronPDF stands out as the more versatile and comprehensive solution, offering superior rendering quality, extensive features, and true cross-platform support. Its modern architecture and developer-friendly API make it ideal for teams building scalable, production-ready applications.
While SelectPdf may have a lower entry price point, the limitations in platform support, features, and performance often result in higher total costs through increased development time and infrastructure constraints.
Take the Next Step
Ready to elevate your PDF generation capabilities? IronPDF offers multiple ways to get started:
- Download IronPDF and integrate it into your project today
- Explore the comprehensive documentation library for implementation guides
- Start your 30-day free trial with full functionality and no watermarks
- Schedule a personalized demo with our engineering team
Transform your PDF generation workflow with a library built for modern .NET development. Join thousands of developers who've already made the switch to IronPDF.
Start using IronPDF in your project today with a free trial.
Frequently Asked Questions
How do IronPDF and SelectPdf differ in platform compatibility?
IronPDF supports multiple platforms including Windows, Linux, macOS, and Docker, while SelectPdf is limited to Windows environments. This makes IronPDF a more versatile option for projects requiring cross-platform support.
What are the performance differences between IronPDF and SelectPdf for HTML to PDF conversion?
Performance benchmarks indicate that IronPDF converts pages in sub-second times thanks to its optimized memory management and Chrome-based rendering engine. In contrast, SelectPdf typically averages 2-3 seconds per page, especially with complex documents.
Can I use IronPDF for DOCX to PDF conversion?
Yes, IronPDF supports DOCX to PDF conversion through its DocxToPdfRenderer class. This feature allows you to convert Word documents to PDF without needing Microsoft Office installed, preserving document formatting seamlessly.
How does IronPDF handle JavaScript and CSS in HTML to PDF conversion?
IronPDF's Chrome V8 rendering engine fully supports JavaScript execution and CSS3, effectively handling modern frameworks like React and Angular, as well as advanced CSS features such as Grid and Flexbox.
What security features does IronPDF offer for PDF documents?
IronPDF provides robust security features including AES-256 encryption, password protection, digital signatures, and detailed permission settings through its SecuritySettings class, offering comprehensive document protection.
How can IronPDF assist with GDPR and HIPAA compliance?
IronPDF supports content redaction, which is crucial for GDPR and HIPAA compliance. Using the RedactTextOnAllPages() method, you can permanently remove sensitive information from PDFs based on regex patterns.
Are watermarks and stamps supported in IronPDF?
Yes, IronPDF allows for the addition of watermarks and stamps using HTML/CSS. The ApplyWatermark() method provides full control over watermark opacity, rotation, and positioning, making it easy to customize document branding.
What kind of support can developers expect from IronPDF?
IronPDF offers 24/5 engineering support, providing direct access to its development team, comprehensive documentation, 100+ code examples, and video tutorials. Support channels include chat and screen sharing for professional licenses.
Is there a trial version available for IronPDF?
IronPDF provides a fully-functional 30-day free trial with no watermarks or limitations. This trial allows developers to thoroughly evaluate all features in production environments and includes access to documentation and support.
How does IronPDF's cost compare to SelectPdf for commercial use?
IronPDF starts at $749 for a single developer license, with prices up to $2,999 for 10 developers. In contrast, SelectPdf begins at $499 for one developer. Although SelectPdf has lower entry costs, IronPDF offers more features and 24/5 support.








