La guía definitiva para elegir la mejor biblioteca PDF de C#
Procura empresarial solo con cotización frente a precio público de auto-servicio perpetuo: Foxit PDF SDK for .NET e Iron Suite se sitúan en lados opuestos de esa línea. Foxit vende su SDK para desarrolladores solo con cotización, sin precio en USD publicado, y la estructura modular de complementos significa que OCR, Conversión, Redacción y Comparación son cada uno artículos de línea licenciados por separado activados además del núcleo.Iron Suitese ofrece a un precio perpetuo publicado desde $2,998 por desarrollador, cubriendo los diez productos de Iron bajo una sola licencia, con implementación libre de regalías para los asientos licenciados y un Complemento de Redistribución separado para escenarios SaaS o OEM.
Este artículo comienza con en qué se basa realmente una decisión liderada por la compra: cómo se precian cada suite, qué cubre la licencia y qué complementos necesitan negociación separada. El detalle por capacidad para desarrolladores sigue para los ingenieros que lo integran.
Comparación rápida
| Dimensión | Foxit PDF SDK | Iron Suite |
|---|---|---|
| Posicionamiento de precios | Solo con cotización para SDK de desarrollador; Producto servidor Compresor de PDF ~$375/año por 12,000 páginas | Lite $2,998 / Plus $4,498 / Professional $8,998 / Unlimited $17,998 (Enterprise custom). Los 10 productos por el precio de 2, ahorra 75% |
| Modelo de licencia | Comercial basado en cotización por desarrollador + regalías por despliegue; modular add-on licensing | Perpetuo por desarrollador; base libre de regalías + Complemento de Redistribución para SaaS/OEM |
| Componentes en el paquete | SDK PDF core + Add-ons de Conversión, OCR, Redacción, Comparación; Compresor de PDF vendido por separado | 10 productos (PDF, Word, Excel, PPT, OCR, Código de barras, QR, Impresión, ZIP, WebScraper) |
| Cobertura de formato/capacidad | Centrados en PDF; Office manejado mediante add-on de conversión; sin manipulación nativa de Word/Excel/PPT, sin código de barras/QR, sin scraping web | PDF + Word nativo + Excel + PPT + OCR + Código de barras + QR + Impresión + ZIP + Web scraping |
| Plataforma cruzada / nube | Windows prioritario; Linux/macOS mediante SDK Core; iOS/Android/MAUI/Web como familias SDK separadas | Windows, Linux, macOS, Docker, Azure, AWS Lambda |
| Soporte de tiempo de ejecución .NET | .NET Framework 4.0, .NET Core 2.1, .NET 6.0; .NET 8+ mediante edición SDK Core | .NET Framework 4.6.2+, .NET Core, .NET 6/7/8/9/10 |
| Mercado objetivo | Pilas PDF Enterprise/ISV que necesitan rendimiento nativo del motor | Desarrolladores .NET e ISVs que desean un paquete de documentos + reconocimiento autónomo y único |
| Vendedor | Foxit Software Inc. | Iron Software |
Foxit PDF SDK es adquisición comercial solo con cotización, estructurado como asientos por desarrollador más regalía por despliegue más complementos licenciados por separado (Conversión, OCR, Redacción, Comparación).Iron SuiteLite cuesta $2,998 por desarrollador para el paquete completo de diez productos, perpetuo y libre de regalías para los asientos licenciados. La decisión se inclina según si la profundidad de cobertura del estándar PDF de Foxit y su largo historial de ISV/OEM justifican el camino de adquisición con cotización y complemento frente a un precio plano publicado que cubre una superficie de formato y reconocimiento más amplia.
Precios y licencias
Foxit PDF SDK usa un modelo comercial basado en cotización. El SDK para desarrolladores no tiene niveles de precios publicados en USD; La propia base de conocimiento de Foxit confirma que los precios se negocian a través de ventas, con el modelo típicamente estructurado como una tarifa por asiento de desarrollador más una regalía por despliegue o tiempo de ejecución. La estructura modular de complementos significa que OCR, Conversion, Redaction y Compare son cada uno artículos de línea licenciados por separado en lugar de estar incluidos en el SDK base. El producto servidor adyacente Compresor de PDF, vendido por separado del SDK para desarrolladores, comienza aproximadamente en $375/año por 12,000 páginas de procesamiento. El precio exacto por nivel de desarrollador no está verificado más allá de "contactar ventas".
Iron Suite se vende como una licencia perpetua por desarrollador desde $2,998, empaquetando los diez componentes bajo una sola compra. La posición de marketing, "los 10 productos por el precio de 2, ahorra 75%", refleja el descuento del paquete frente a comprar los productos individuales de Iron por separado. La licencia base es libre de regalías para los asientos con licencia; SaaS, OEM y escenarios de redistribución distribuida más allá de la licencia base están cubiertos por un complemento de Redistribución separado.
La adquisición de Foxit está en capas: tarifa por asiento de desarrollador más regalía por despliegue más activaciones de complemento licenciadas por separado para OCR, Conversión, Redacción y Comparación, todas alcanzadas a través de una conversación de ventas. La adquisición deIron Suitees auto-servicio a un precio en USD publicado por nivel, perpetuo, con el complemento de Redistribución como el único artículo de línea con precio separado para redistribución SaaS y OEM más allá de la licencia base.
¿Qué es Foxit PDF SDKfor .NET?
Foxit PDF SDK for .NET es el kit de herramientas para desarrolladores de Foxit Software para incrustar capacidades PDF en aplicaciones .NET. El SDK básico se ofrece como Foxit.SDK.Dotnet en NuGet; La versión 11.1.0.1 (abril de 2026) apunta a .NET Framework 4.0, .NET Core 2.1 y .NET 6.0, con .NET 8+ cubierto a través de la edición SDK Core. El producto está posicionado contra Adobe PDF Library y Apryse (anteriormente PDFTron) para cargas de trabajo PDF Enterprise e ISV; compite en rendimiento bruto del motor nativo y profundidad de cobertura del estándar PDF en lugar de en ergonomía del desarrollador o amplitud del paquete.
El SDK es modular: el core maneja visualización, renderización, edición, anotación, firma y formularios, mientras que las capacidades especializadas están licenciadas como complementos activados por separado.
Componentes integrados y complementos:
- SDK PDF Core: visualizar, renderizar, editar, anotar, firmar, llenar formularios
- Complemento de conversión: Office (Word, Excel, PowerPoint) ↔ PDF
- Add-on OCR: reconocimiento de texto en PDFs rasterizados e imágenes
- Add-on de redacción: eliminación de texto/área de calidad de producción
- Add-on de comparación: comparación estructural y visual de PDF
- Compresor de PDF: producto servidor separado (vendido por separado del SDK)
¿Qué es Iron Suite?
Iron Suite es el paquete de diez productos .NET deIron Softwarecon IronPDF en el centro. Cualquier equipo cuyo requerimiento principal se siente en generación, firma, redacción o rasterización de PDF comienza en IronPDF e hereda el resto del paquete bajo la misma licencia. Se vende como una sola licencia perpetua por desarrollador en cinco niveles (Lite, Plus, Professional, Unlimited, Enterprise) desde $2,998. Libre de regalías para los asientos con licencia; La redistribución para SaaS y OEM está cubierta por un complemento de Redistribución separado.
Los diez componentes, agrupados por relevancia para un flujo de trabajo liderado por PDF:
- IronPDF (ancla PDF): HTML a PDF y renderización URL a PDF con Chromium incluido; fusión y división nativa vía
PdfDocument.Merge; redacción verdadera de texto víaRedactTextOnAllPagescon regex; PKCS#12, HSM (PKCS#11), sello de tiempo TSA, y firma multipartita alineada a eIDAS y ESIGN; encriptación AES y permisos granulares; PDF/A-1 a través de PDF/A-4 (4E/4F incluido); PDF/UA-1 y PDF/UA-2; relleno y aplanado de AcroForm; gestión completa de fuentes (creación personalizada, soporte para fuentes web y Colección TrueType);RasterizeToImageFilesa PNG/JPEG/TIFF con control de DPI;CompressAndSaveAsySaveAsLinearizedpara Vista Web Rápida; extracción de texto. - Office: IronWord (DOCX con gráfico de objeto de párrafo/textual), IronXL (XLSX con recalculo de fórmula), IronPPT (creación de PPTX).
- Reconocimiento: IronOCR (Tesseract 5, más de 125 idiomas, escritura a mano al ~90% en inglés), IronBarcode (más de 30 simbologías), IronQR (lectura potenciada por ML con lotes
ReadPdfs). - Utilidad: IronPrint (impresión silenciosa y con diálogo), IronZIP (ZIP/TAR/GZIP/BZIP2 con AES), IronWebScraper (scraping en proceso).
Comparación de Capacidades
Renderizado PDF
La renderización de PDF (convirtiendo un documento PDF existente en píxeles para visualización, miniaturas, o procesamiento basado en imagen) es una de las capacidades principales de Foxit. El motor nativo de Foxit renderiza páginas en múltiples hilos directamente a bitmaps sin una dependencia externa de un motor de navegador.
// Foxit PDF SDK— render existing PDF to bitmap
using foxit;
using foxit.common;
using foxit.common.fxcrt;
using foxit.pdf;
Library.Initialize(sn, key);
using PDFDoc doc = new PDFDoc("input.pdf");
doc.Load(null);
PDFPage page = doc.GetPage(0);
page.StartParse((int)PDFPage.ParseFlags.e_ParsePageNormal, null, false);
int width = (int)page.GetWidth();
int height = (int)page.GetHeight();
Matrix2D matrix = page.GetDisplayMatrix(0, 0, width, height, page.GetRotation());
Bitmap bitmap = new Bitmap(width, height, Bitmap.DIBFormat.e_DIBArgb, IntPtr.Zero, 0);
bitmap.FillRect(0xFFFFFFFF, null);
Renderer renderer = new Renderer(bitmap, false);
renderer.StartRender(page, matrix, null);
Library.Release();// Foxit PDF SDK— render existing PDF to bitmap
using foxit;
using foxit.common;
using foxit.common.fxcrt;
using foxit.pdf;
Library.Initialize(sn, key);
using PDFDoc doc = new PDFDoc("input.pdf");
doc.Load(null);
PDFPage page = doc.GetPage(0);
page.StartParse((int)PDFPage.ParseFlags.e_ParsePageNormal, null, false);
int width = (int)page.GetWidth();
int height = (int)page.GetHeight();
Matrix2D matrix = page.GetDisplayMatrix(0, 0, width, height, page.GetRotation());
Bitmap bitmap = new Bitmap(width, height, Bitmap.DIBFormat.e_DIBArgb, IntPtr.Zero, 0);
bitmap.FillRect(0xFFFFFFFF, null);
Renderer renderer = new Renderer(bitmap, false);
renderer.StartRender(page, matrix, null);
Library.Release();Imports foxit
Imports foxit.common
Imports foxit.common.fxcrt
Imports foxit.pdf
Library.Initialize(sn, key)
Using doc As New PDFDoc("input.pdf")
doc.Load(Nothing)
Dim page As PDFPage = doc.GetPage(0)
page.StartParse(CInt(PDFPage.ParseFlags.e_ParsePageNormal), Nothing, False)
Dim width As Integer = CInt(page.GetWidth())
Dim height As Integer = CInt(page.GetHeight())
Dim matrix As Matrix2D = page.GetDisplayMatrix(0, 0, width, height, page.GetRotation())
Dim bitmap As New Bitmap(width, height, Bitmap.DIBFormat.e_DIBArgb, IntPtr.Zero, 0)
bitmap.FillRect(&HFFFFFFFFUI, Nothing)
Dim renderer As New Renderer(bitmap, False)
renderer.StartRender(page, matrix, Nothing)
End Using
Library.Release()//Iron Suite— IronPDF (HTML-to-PDF generation as the primary path)
using IronPdf;
var renderer = new ChromePdfRenderer();
string html = "<h1>Invoice 2026-0428</h1><p>Total due: $1,240.00</p>";
using var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("invoice.pdf");//Iron Suite— IronPDF (HTML-to-PDF generation as the primary path)
using IronPdf;
var renderer = new ChromePdfRenderer();
string html = "<h1>Invoice 2026-0428</h1><p>Total due: $1,240.00</p>";
using var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("invoice.pdf");Imports IronPdf
Dim renderer As New ChromePdfRenderer()
Dim html As String = "<h1>Invoice 2026-0428</h1><p>Total due: $1,240.00</p>"
Using pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("invoice.pdf")
End UsingLa interfaz de API de Foxit refleja sus orígenes en C++ nativo: Library.Initialize / Library.Release explícito, construcción manual de matrices, asignación de bitmap y una llamada de renderización en varios pasos. La ruta de IronPDF está invertida; genere el PDF desde HTML/CSS a través de un motor Chromium integrado, luego opere en el documento resultante. La renderización fiel de PDFs existentes a escala es el caso para el cual el motor nativo de Foxit está diseñado — IronPDF adopta un mecanismo diferente, produciendo nuevos PDFs a partir de entradas con estilo web a través de un canal de Chromium incluido. Chromium incluido en IronPDF se ofrece en un solo paquete NuGet (IronPdf.Linux es aproximadamente 280 MB, incluyendo el navegador Chrome completo, sin un canal de instalación de Chromium separado y sin descarga de BrowserFetcher en tiempo de ejecución), lo que es operativamente más sencillo que manejar Chromium en el host o las descargas en tiempo de ejecución de Puppeteer/Playwright en implementaciones en contenedores de Linux y AWS Lambda.
Edición de PDF (Manipulación de Página)
Insertar, eliminar y reordenar páginas es una operación rutinaria en cualquier flujo de trabajo PDF, ensamblando informes de múltiples fuentes, eliminando páginas de borrador antes de la publicación o construyendo portadas en un documento existente.
// Foxit PDF SDK— insert / remove pages
using foxit.common;
using foxit.pdf;
Library.Initialize(sn, key);
using PDFDoc doc = new PDFDoc("input.pdf");
doc.Load(null);
PDFPage inserted = doc.InsertPage(1, 612f, 792f);
int lastIndex = doc.GetPageCount() - 1;
doc.RemovePage(lastIndex);
doc.SaveAs("edited.pdf", (int)PDFDoc.SaveFlags.e_SaveFlagNormal);
Library.Release();// Foxit PDF SDK— insert / remove pages
using foxit.common;
using foxit.pdf;
Library.Initialize(sn, key);
using PDFDoc doc = new PDFDoc("input.pdf");
doc.Load(null);
PDFPage inserted = doc.InsertPage(1, 612f, 792f);
int lastIndex = doc.GetPageCount() - 1;
doc.RemovePage(lastIndex);
doc.SaveAs("edited.pdf", (int)PDFDoc.SaveFlags.e_SaveFlagNormal);
Library.Release();Imports foxit.common
Imports foxit.pdf
Library.Initialize(sn, key)
Using doc As New PDFDoc("input.pdf")
doc.Load(Nothing)
Dim inserted As PDFPage = doc.InsertPage(1, 612.0F, 792.0F)
Dim lastIndex As Integer = doc.GetPageCount() - 1
doc.RemovePage(lastIndex)
doc.SaveAs("edited.pdf", CInt(PDFDoc.SaveFlags.e_SaveFlagNormal))
End Using
Library.Release()// NuGet: Install-Package IronPdf
// Docs: https://ironpdf.com/how-to/merge-or-split-pdfs/
using IronPdf;
using System.Collections.Generic;
class Program
{
static void Main()
{
// PdfDocument.Merge accepts an array or params list of PdfDocument objects.
// Order is preserved, and metadata, bookmarks, and annotations are retained.
string[] inputs = { "invoice.pdf", "terms.pdf", "appendix.pdf" };
List<PdfDocument> parts = new List<PdfDocument>();
foreach (string path in inputs)
parts.Add(PdfDocument.FromFile(path));
PdfDocument merged = PdfDocument.Merge(parts.ToArray());
merged.SaveAs("contract-package.pdf");
}
}// NuGet: Install-Package IronPdf
// Docs: https://ironpdf.com/how-to/merge-or-split-pdfs/
using IronPdf;
using System.Collections.Generic;
class Program
{
static void Main()
{
// PdfDocument.Merge accepts an array or params list of PdfDocument objects.
// Order is preserved, and metadata, bookmarks, and annotations are retained.
string[] inputs = { "invoice.pdf", "terms.pdf", "appendix.pdf" };
List<PdfDocument> parts = new List<PdfDocument>();
foreach (string path in inputs)
parts.Add(PdfDocument.FromFile(path));
PdfDocument merged = PdfDocument.Merge(parts.ToArray());
merged.SaveAs("contract-package.pdf");
}
}Imports IronPdf
Imports System.Collections.Generic
Module Program
Sub Main()
' PdfDocument.Merge accepts an array or params list of PdfDocument objects.
' Order is preserved, and metadata, bookmarks, and annotations are retained.
Dim inputs As String() = {"invoice.pdf", "terms.pdf", "appendix.pdf"}
Dim parts As New List(Of PdfDocument)()
For Each path As String In inputs
parts.Add(PdfDocument.FromFile(path))
Next
Dim merged As PdfDocument = PdfDocument.Merge(parts.ToArray())
merged.SaveAs("contract-package.pdf")
End Sub
End ModuleIronPDF expone operaciones equivalentes a nivel de página a través de un modelo de objeto unificado PdfDocument: carga a través de PdfDocument.FromFile(...), ensamblaje a través del estático PdfDocument.Merge(...), copia y eliminación de rango de páginas, y SaveAs(...). Las ediciones impactan directamente el modelo de objeto PDF; el recorrido a través del HTML solo ocurre al crear un PDF desde HTML, no durante la manipulación. El contraste es estructural: la API de Foxit por operación expone la fontanería del motor nativo (Initialize/Release explícito, enums de banderas de guardado); IronPDF unifica la generación y edición bajo un solo modelo de objeto administrado con gestión implícita del ciclo de vida vía using.
Conversión Office a PDF
Convertir documentos de Word, Excel y PowerPoint a PDF sin una instalación de Microsoft Office en el servidor es un requisito frecuente en el lado del servidor. Foxit maneja esto a través de un add-on de Conversión licenciado por separado.
// Foxit PDF SDK— Conversion add-on (Word → PDF)
using foxit.common;
using foxit.addon.conversion;
Library.Initialize(sn, key);
using var settings = new Word2PDFSettingData();
Convert.FromWord("input.docx", string.Empty, "output.pdf", settings);
Library.Release();// Foxit PDF SDK— Conversion add-on (Word → PDF)
using foxit.common;
using foxit.addon.conversion;
Library.Initialize(sn, key);
using var settings = new Word2PDFSettingData();
Convert.FromWord("input.docx", string.Empty, "output.pdf", settings);
Library.Release();Imports foxit.common
Imports foxit.addon.conversion
Library.Initialize(sn, key)
Using settings As New Word2PDFSettingData()
Convert.FromWord("input.docx", String.Empty, "output.pdf", settings)
End Using
Library.Release()Iron Suite no envía una única API dedicada para la conversión de DOCX a PDF; el mismo resultado se logra componiendo IronWord (para cualquier manipulación de DOCX) con IronPDF (para la generación de PDF), o alimentando el contenido de origen directamente a través de la ruta de HTML a PDF de IronPDF. La conversión de documentos de origen de Office como flujo de trabajo primario es el caso para el que se vende el add-on de Conversión de Foxit, mientras queIron Suitecompone IronWord más IronPDF (o alimenta el contenido de origen a través de la ruta de HTML a PDF de IronPDF) para el mismo resultado sin una licencia de add-on separada sobrepuesta a la tarifa de asiento.
OCR
El OCR, extrayendo texto legible por máquina de PDFs escaneados e imágenes rasterizadas, es una de las razones más comunes por las que los equipos recurren a un SDK de PDF más allá de la pura generación.
// Foxit PDF SDK— OCR add-on
using foxit.common;
using foxit.addon.ocr;
Library.Initialize(sn, key);
if (OCREngine.Initialize("./ocr_resource") != ErrorCode.e_ErrSuccess) return;
OCREngine.SetLanguages("English");
// Configure OCRCallback to consume recognized content...
OCREngine.Release();
Library.Release();// Foxit PDF SDK— OCR add-on
using foxit.common;
using foxit.addon.ocr;
Library.Initialize(sn, key);
if (OCREngine.Initialize("./ocr_resource") != ErrorCode.e_ErrSuccess) return;
OCREngine.SetLanguages("English");
// Configure OCRCallback to consume recognized content...
OCREngine.Release();
Library.Release();Imports foxit.common
Imports foxit.addon.ocr
Library.Initialize(sn, key)
If OCREngine.Initialize("./ocr_resource") <> ErrorCode.e_ErrSuccess Then Return
OCREngine.SetLanguages("English")
' Configure OCRCallback to consume recognized content...
OCREngine.Release()
Library.Release()//Iron Suite— IronOCR
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput("scanned-document.png");
input.Deskew();
input.DeNoise();
var result = ocr.Read(input);
Console.WriteLine($"Confidence: {result.Confidence}");
Console.WriteLine($"Extracted text: {result.Text}");//Iron Suite— IronOCR
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput("scanned-document.png");
input.Deskew();
input.DeNoise();
var result = ocr.Read(input);
Console.WriteLine($"Confidence: {result.Confidence}");
Console.WriteLine($"Extracted text: {result.Text}");Imports IronOcr
Dim ocr As New IronTesseract()
Using input As New OcrInput("scanned-document.png")
input.Deskew()
input.DeNoise()
Dim result = ocr.Read(input)
Console.WriteLine($"Confidence: {result.Confidence}")
Console.WriteLine($"Extracted text: {result.Text}")
End UsingEl motor OCR de Foxit usa un ciclo de vida explícito (Inicializar → EstablecerIdiomas → consumo basado en callback → Release) con archivos de recursos distribuidos por separado y una clave de licencia activada para el módulo OCR. La API de IronOCR entrega el resultado directamente con ayudantes de preprocesamiento incorporados (Deskew, DeNoise) y una única llamada de Lectura. La compensación refleja el cuadro general de motor contra suite: Foxit da más control sobre la canalización de OCR; IronOCR es más rápido para llegar a un resultado de trabajo.
Redacción
La redacción de calidad de producción, eliminando permanentemente contenido sensible de PDFs en lugar de superponer recuadros negros que pueden analizarse y recuperar, es una de las cargas de trabajo en las que Foxit ancla su tono empresarial. Se usa en flujos de trabajo legales, de salud y de gobierno donde la salida redactada debe soportar intentos de recuperación forense.
// Foxit PDF SDK— Redaction add-on
using foxit.common;
using foxit.common.fxcrt;
using foxit.pdf;
using foxit.addon;
using foxit.pdf.annots;
Library.Initialize(sn, key);
using PDFDoc doc = new PDFDoc("input.pdf");
doc.Load(null);
PDFPage page = doc.GetPage(0);
page.StartParse((int)PDFPage.ParseFlags.e_ParsePageNormal, null, false);
Redaction redaction = new Redaction(doc);
RectFArray rects = new RectFArray();
rects.Add(new RectF(100, 100, 300, 130));
Redact redact = redaction.MarkRedactAnnot(page, rects);
if (redaction.Apply())
{
doc.SaveAs("redacted.pdf", (int)PDFDoc.SaveFlags.e_SaveFlagNormal);
}
Library.Release();// Foxit PDF SDK— Redaction add-on
using foxit.common;
using foxit.common.fxcrt;
using foxit.pdf;
using foxit.addon;
using foxit.pdf.annots;
Library.Initialize(sn, key);
using PDFDoc doc = new PDFDoc("input.pdf");
doc.Load(null);
PDFPage page = doc.GetPage(0);
page.StartParse((int)PDFPage.ParseFlags.e_ParsePageNormal, null, false);
Redaction redaction = new Redaction(doc);
RectFArray rects = new RectFArray();
rects.Add(new RectF(100, 100, 300, 130));
Redact redact = redaction.MarkRedactAnnot(page, rects);
if (redaction.Apply())
{
doc.SaveAs("redacted.pdf", (int)PDFDoc.SaveFlags.e_SaveFlagNormal);
}
Library.Release();Imports foxit.common
Imports foxit.common.fxcrt
Imports foxit.pdf
Imports foxit.addon
Imports foxit.pdf.annots
Library.Initialize(sn, key)
Using doc As New PDFDoc("input.pdf")
doc.Load(Nothing)
Dim page As PDFPage = doc.GetPage(0)
page.StartParse(CInt(PDFPage.ParseFlags.e_ParsePageNormal), Nothing, False)
Dim redaction As New Redaction(doc)
Dim rects As New RectFArray()
rects.Add(New RectF(100, 100, 300, 130))
Dim redact As Redact = redaction.MarkRedactAnnot(page, rects)
If redaction.Apply() Then
doc.SaveAs("redacted.pdf", CInt(PDFDoc.SaveFlags.e_SaveFlagNormal))
End If
End Using
Library.Release()// NuGet: Install-Package IronPdf
// Docs: https://ironpdf.com/how-to/redact-text/
using IronPdf;
class Program
{
static void Main()
{
PdfDocument pdf = PdfDocument.FromFile("employee-record.pdf");
// RedactTextOnAllPages performs true redaction:
// the text is removed from the PDF structure, not just covered visually.
pdf.RedactTextOnAllPages("Jane Doe");
pdf.RedactTextOnAllPages("123-45-6789");
pdf.RedactTextOnAllPages("EMP-44213");
pdf.SaveAs("employee-record-redacted.pdf");
}
}// NuGet: Install-Package IronPdf
// Docs: https://ironpdf.com/how-to/redact-text/
using IronPdf;
class Program
{
static void Main()
{
PdfDocument pdf = PdfDocument.FromFile("employee-record.pdf");
// RedactTextOnAllPages performs true redaction:
// the text is removed from the PDF structure, not just covered visually.
pdf.RedactTextOnAllPages("Jane Doe");
pdf.RedactTextOnAllPages("123-45-6789");
pdf.RedactTextOnAllPages("EMP-44213");
pdf.SaveAs("employee-record-redacted.pdf");
}
}Imports IronPdf
Class Program
Shared Sub Main()
Dim pdf As PdfDocument = PdfDocument.FromFile("employee-record.pdf")
' RedactTextOnAllPages performs true redaction:
' the text is removed from the PDF structure, not just covered visually.
pdf.RedactTextOnAllPages("Jane Doe")
pdf.RedactTextOnAllPages("123-45-6789")
pdf.RedactTextOnAllPages("EMP-44213")
pdf.SaveAs("employee-record-redacted.pdf")
End Sub
End ClassIronPDF soporta la redacción a nivel de texto vía RedactTextOnAllPages (con variantes de patrón regex y sobrecargas específicas de página), eliminando el contenido coincidente del flujo PDF en lugar de solo cubrirlo visualmente. La Redaction.MarkRedactAnnot de Foxit retiene un borde de redacción basado en área: una región RectF en una página se marca y aplica con redaction.Apply(), lo que se ajusta a flujos de trabajo donde el objetivo de la redacción es una región visual conocida (bloques de firmas, barras de encabezado, imágenes redactadas) en lugar de una cadena conocida. Para descubrimiento legal y flujos de trabajo de cumplimiento regulado que combinan redacción basada en cadenas y basada en áreas en el mismo motor, la Redaction.MarkRedactAnnot de Foxit es la API posicionada para ese caso de uso — para la redacción dirigida por cadenas de PII, identificadores y números de cuenta, la RedactTextOnAllPages de IronPDF es el camino más directo.
Por qué elegirIron Suitepara flujos de trabajo de PDF + OCR + Código de barras de un solo proveedor
ElijaIron Suitecuando su carga de trabajo de documentos en .NET abarque generación de PDF, OCR, lectura de códigos de barras y manipulación de formatos de Office bajo una única relación con el proveedor con un precio publicado de auto-servicio. La profundidad de Foxit en PDF es real; la lectura y escritura de códigos de barras y la generación de PowerPoint se encuentran fuera del catálogo de Foxit, y cada add-on (Conversión, OCR, Redacción, Comparación) lleva su propia activación de licencia.
Las ventajas estructurales deIron Suitepara este perfil de comprador:
- Compra única empaquetada: diez productos bajo una licencia; sin activación modular de add-ons, sin SKUs separados para OCR o código de barras
- Código de barras nativo, QR y PPT: incluidos; Foxit no envía un módulo de código de barras o PowerPoint
- Adquisición auto-servicio: precios en USD publicados, licencias perpetuas; Foxit requiere una cotización para cada desarrollador
- Licencia base libre de regalías: sin regalía por tiempo de ejecución por despliegue; Complemento de Redistribución disponible para SaaS/OEM como un artículo predecible separado
- DOCX/XLSX/PPTX primero en código: IronWord, IronXL, IronPPT manejan formatos de Office directamente sin requerir una capa de conversión a PDF
¿Cómo esIron Suitediferente del Foxit PDF SDK?
- Núcleo PDF más complementos licenciados por separado de Conversión, OCR, Redacción y Comparación: ese es el camino del Foxit PDF SDK, con código de barras, QR, impresión y scraping fuera del catálogo por completo.Iron Suitees una suite de 10 productos abarcando PDF, Office, reconocimiento, impresión, ZIP, y scraping bajo una sola licencia.
- Transparencia en precios.Iron Suitepublica niveles en USD en el sitio web; el SDK para desarrolladores de Foxit es solo manera de cotización sin tarjeta de precios pública.
- Modelo de licenciamiento.Iron Suitees perpetua; Foxit es por asiento de desarrollador más regalía por despliegue, con cada complemento licenciado por separado.
- Superficie de API.Iron Suiteutiliza .NET idiomático (
new ChromePdfRenderer().RenderHtmlAsPdf(...)); El enlace .NET de Foxit refleja la plomería nativa (Library.Initialize,StartParse, asignación manual de matrices y bitmaps, liberación explícita). - La propuesta empresarial de Foxit, lo que contiene. Esquinas sin procesar de la especificación PDF (linealización PDF/A, fuentes incrustadas, AcroForm/XFA avanzado) y redacción basada en área (
Redaction.MarkRedactAnnot) son las cargas de trabajo en las que ancla la propuesta de Foxit, junto a un complemento de conversión de Office propio y un largo historial de ISV. IronPDF soporta la conformidad completa de la familia PDF/A (A-1a, A-1b, A-2a, A-2b, A-3a, A-3b, más la familia PDF/A-4/4E/4F según ISO 19005-4:2020) vía la enumeraciónPdfAVersions, incluye redacción a nivel de texto (RedactTextOnAllPagescon soporte para regex) dentro del paquete básico, y ofrece gestión completa de fuentes (Fonts.Add().Embed(), soporte para fuentes web víaWaitFor.AllFontsLoaded(), soporte para Colección TrueType), por lo que ni PDF/A ni la redacción basada en cadenas ni el manejo de fuentes son exclusivos de Foxit. IronPDF también ofrece soporte dedicado de accesibilidad para PDF/UA,RenderHtmlAsPdfUA(html)produciendo un PDF accesible etiquetado en una llamada (PDF/UA-1 por defecto, PDF/UA-2 también soportado), documentado para cumplir con la Sección 508 y WCAG 2.0 AA desde el primer momento. - Forma de pila multiplataforma. Foxit envía familias de SDK separadas en escritorio, móvil (iOS/Android/MAUI), y Web desde un solo proveedor;Iron Suitese enfoca en servidor .NET, escritorio y nube (una forma de distribución diferente).
Conclusión
Foxit yIron Suiteresponden a preguntas diferentes. Foxit responde a una adquisición que quiere un motor PDF nativo modular basado en cotización, con un largo historial ISV/OEM, además de complementos para OCR, conversión y redacción basada en áreas.Iron Suiteresponde a una adquisición que quiere un solo paquete perpetuo cubriendo PDF (con las capacidades de nivel de estándar nombradas más arriba), Office, reconocimiento y utilidades adyacentes a un precio en USD publicado, despliegue libre de regalías bajo la licencia base. Para equipos .NET cuyo trabajo de documentos abarca PDF, código de barras, Office y OCR, el paqueteIron Suitecomienza desde $2,998 y está disponible en ironsoftware.com/csharp/suite.
