IronPDF vs PDFShift: Comparación de la API de HTML a PDF de C#
IronPDF ofrece una biblioteca C# local confiable con licencia perpetua a partir de $749, mientras que PDFShift ofrece una API en la nube con precios de pago por conversión. Para las empresas emergentes que procesan más de 500 archivos PDF por mes, IronPDF se vuelve más rentable, ofreciendo mejor privacidad de datos y capacidad sin conexión.
El formato de documento portátil (PDF) es el estándar para representar texto, enlaces, gráficos y más en un solo documento. La manipulación de archivos PDF en C# requiere bibliotecas PDF especializadas para aplicaciones .NET . Este artículo compara dos API diferentes para la generación de PDF y examina su rendimiento, características y licencias. Al crear aplicaciones .NET, los desarrolladores necesitan capacidades de generación de PDF que manejen diseños HTML complejos, estilos CSS y representación de JavaScript.
Las API de PDF analizadas son:
- IronPDF
- PDFShift
¿Qué es IronPDF?
IronPDF es una API de conversión de HTML a PDF completa diseñada para el desarrollo de .NET y .NET Core. La biblioteca convierte sitios HTML y proporciona amplias funciones de manipulación de PDF. IronPDF permite a los desarrolladores crear , modificar y extraer contenido de documentos PDF en entornos .NET. La biblioteca simplifica la generación de PDF a partir de páginas HTML y admite la conversión de CSHTML a PDF para aplicaciones MVC y Razor Pages .
Los archivos PDF se pueden editar, sellar y mejorar con encabezados y pies de página. La biblioteca simplifica la lectura de texto PDF y la extracción de imágenes . IronPDF utiliza un motor .NET Chromium para la representación de HTML a PDF. Este motor garantiza una representación perfecta de píxeles y admite tecnologías web modernas, incluida la conversión de JavaScript a PDF . El hito del motor de renderizado Chrome marcó un avance significativo en la precisión de renderizado y la optimización del rendimiento .
¿Qué características ofrece IronPDF?
¿Qué opciones de conversión de PDF están disponibles?
Cree archivos PDF a partir de HTML , cadenas HTML , vistas MVC , formularios web y URL . También admite conversiones de Markdown , XML y RTF . Las funciones de conversión incluyen transformaciones de DOCX a PDF y de imagen a PDF . Para aplicaciones web, IronPDF maneja la conversión de páginas ASPX y admite la representación CSHTML sin interfaz gráfica .
¿Cómo funciona la creación de imágenes PDF?
Crea imágenes a partir de archivos PDF y archivos PDF a partir de imágenes . Incluye extracción de imágenes, múltiples formatos e impresión en PDF . Admite gráficos SVG e imágenes de Azure Blob Storage . La biblioteca maneja la conversión de TIFF de múltiples cuadros y proporciona conversión de PDF a imágenes de alta calidad . Para un procesamiento eficiente de la memoria, utilice la rasterización con MemoryStream .
¿Qué funciones de E/S de archivos están incluidas?
IronPDF proporciona encriptación de 128 bits , protección con contraseña y firmas digitales . Incluye firma HSM y compatibilidad con PDF/A . El hito PDF/A amplió el soporte para formatos de archivo, incluidos PDF/A-3 y ZUGFeRD . Las características de seguridad adicionales incluyen la desinfección de archivos PDF y la gestión del historial de revisiones .
¿Cómo puedo editar archivos PDF?
IronPDF ofrece marcas de agua , gestión de páginas , fondos , primeros planos y manipulación completa de PDF . Incluye dibujos , anotaciones y gestión de formularios . La edición avanzada incluye reemplazo de texto , redacción y transformación de páginas PDF . El hito DOM de PDFium mejora el manejo de estructuras PDF complejas.
¿Cómo extraigo contenido de archivos PDF?
Extraiga texto incrustado directamente de archivos PDF. Para texto incrustado en imágenes, utilice IronOCR . El objeto DOM PDF proporciona acceso programático a la estructura PDF. La extracción avanzada incluye la lectura de texto PDF y la gestión de fuentes . Para el análisis de texto, utilice la integración de OpenAI para el procesamiento inteligente de documentos.
¿Cómo funcionan los encabezados y pies de página?
Se pueden agregar encabezados y pies de página durante la creación o a archivos PDF existentes. Admite encabezados de texto y HTML con números de página dinámicos. Las opciones avanzadas incluyen agregar encabezados en páginas específicas y administrar saltos de página . Las opciones de renderizado proporcionan un control preciso sobre el diseño y el tamaño del papel .
¿Qué plataformas son compatibles?
IronPDF admite sistemas operativos y marcos compatibles con C#:
- Windows y Windows Server
- Distribuciones de Linux
- macOS Intel y Apple Silicon
- .NET Core 2.1+, .NET 6 y 5
- Cumplimiento del estándar .NET 2.0
- Microsoft Azure y Azure Functions
- AWS y AWS Lambda
- Contenedores Docker
- Android y Blazor
El hito de compatibilidad amplió el soporte de la plataforma. Para obtener orientación sobre la implementación, consulte IronPDF e IIS y solución de problemas de implementación .
¿Qué es PDFShift?
PDFShift es una API de conversión de HTML a PDF que proporciona conversiones rápidas a través de servicios en la nube. La API ofrece conversiones paralelas, consultas asincrónicas, compatibilidad con HTML sin formato y mucho más. PDFShift es compatible con Ruby, Python, JavaScript, Node y PHP. Para desarrolladores de VB.NET o F# , IronPDF ofrece compatibilidad nativa, mientras que PDFShift requiere integración HTTP. Para comparar con otros servicios en la nube, consulte Aspose vs IronPDF y Syncfusion vs IronPDF .
PDFShift permite encabezados y pies de página personalizados, aplicación CSS y cifrado de archivos. Sin embargo, el servicio carece de funciones de manipulación avanzadas como compresión de PDF , linealización o compatibilidad con PDF/UA . Para conocer los requisitos empresariales, revise las divulgaciones de seguridad CVE y la autenticación Kerberos .
¿Qué características ofrece PDFShift?
¿Cómo funcionan las conversiones paralelas?
PDFShift admite conversiones paralelas para el procesamiento simultáneo de documentos. Para conocer una funcionalidad similar, consulte la guía de subprocesos múltiples y asíncronos de IronPDF. IronPDF proporciona ejemplos de generación de PDF en paralelo y generación multiproceso con evaluaciones comparativas de rendimiento. Los ejemplos asincrónicos demuestran la optimización del procesamiento por lotes.
¿Qué opciones de encabezado y pie de página están disponibles?
Cree encabezados y pies de página personalizados con números de página y CSS/JavaScript. IronPDF ofrece opciones avanzadas que incluyen encabezados de tabla repetidos y encabezados HTML personalizados . Los encabezados de texto clásicos ofrecen una implementación simple, mientras que los encabezados HTML permiten diseños complejos. Para contenido dinámico, utilice escuchas de mensajes JavaScript .
¿Puedo convertir HTML sin formato sin hacer públicas las páginas?
PDFShift convierte HTML sin formato sin páginas públicas. IronPDF ofrece capacidades similares con configuración de URL base e incrustación de DataURI . El ejemplo de imagen incrustada base64 muestra una conversión HTML autónoma. Para realizar conversiones seguras, utilice registros personalizados y encabezados de solicitud HTTP .
¿Cómo es la calidad del PDF?
PDFShift crea archivos PDF de alta fidelidad rápidamente. El motor de renderizado Chrome de IronPDF produce archivos PDF con píxeles perfectos que coinciden con la salida del navegador. El tutorial de píxeles perfectos explica la optimización de la calidad. Para requisitos específicos, configure los ajustes de la ventana gráfica y los retrasos de renderizado .
¿Cómo funcionan las solicitudes asincrónicas?
Notificaciones en tiempo real de finalización de conversión con integración sencilla. IronPDF proporciona soporte asincrónico completo con ejemplos de procesamiento por lotes. El ejemplo de generación de PDF asincrónica muestra mejoras de rendimiento. Para el procesamiento a gran escala, consulte administración de memoria y asistencia de rendimiento .
¿Cómo creo un nuevo proyecto en Visual Studio?
Abra Visual Studio y seleccione Archivo > Nuevo proyecto > Aplicación de consola. Este ejemplo utiliza una aplicación de consola. Para obtener instrucciones de configuración, consulte la descripción general de la instalación y la guía de inicio rápido . Las plantillas de proyecto adicionales incluyen tutoriales de Blazor y visualización de PDF de MAUI . Para solucionar problemas de configuración, consulte la guía de solución rápida de problemas .
Introduzca el nombre y la ruta del proyecto. Haga clic en crear. Seleccione el marco .NET requerido:

Visual Studio genera la estructura de la aplicación y abre program.cs para la entrada de código:

¿Cómo instalo la biblioteca IronPDF?
Instale IronPDF de cuatro maneras:
- Administrador de paquetes NuGet de Visual Studio
- Línea de comandos de Visual Studio
- Descarga directa desde NuGet
- Descarga directa desde IronPDF
Para conocer métodos alternativos, consulte la guía del instalador de Windows o la instalación avanzada de NuGet . Las guías específicas de la plataforma incluyen la configuración de Linux , la instalación de macOS y la implementación de Docker . Para entornos con limitaciones de tamaño, utilice IronPDF Slim .
¿Cómo uso el Administrador de paquetes NuGet de Visual Studio?
Visual Studio proporciona el Administrador de paquetes NuGet para la instalación directa:

Busque "IronPDF" en el administrador de paquetes:

Seleccione IronPDF e instale el paquete . Para implementaciones más pequeñas, considere IronPDF Slim . Si encuentra problemas, consulte Error al implementar el paquete NuGet y excepciones de implementación .
¿Cómo uso la línea de comandos de Visual Studio?
Vaya a Herramientas > Administrador de paquetes NuGet > Consola del administrador de paquetes:

Ingresa en la consola:
Install-Package IronPdf
El paquete se descarga e instala. Para instalaciones específicas de la plataforma, consulte Implementación de Linux , macOS o Docker . Para errores de dependencia, verifique las dependencias de Chrome y las dependencias de Pdfium .

¿Puedo descargar directamente desde la página web de NuGet?
Descargue el paquete NuGet directamente:
- Vaya a la página de NuGet IronPDF
- Seleccionar paquete de descarga
- Haga doble clic para la instalación automática
- Solución de recarga
Para la gestión de paquetes, consulte la guía de carpetas de tiempo de ejecución de IronPDF . Si experimenta conflictos de versiones, revise la falta de coincidencia de la versión del ensamblaje y la compatibilidad con ClickOnce .
¿Puedo descargar directamente desde la página web de IronPDF?
Descargar desde la página de descarga de IronPDF . Después de la descarga:
- Haga clic derecho en el proyecto en la ventana de la solución
- Seleccionar referencias y buscar el archivo
- Haz clic en OK
Para configurar la licencia, consulte uso de claves de licencia y aplicación de licencias . Las opciones de configuración adicionales incluyen la configuración de la licencia en Web.config y la administración de las extensiones de licencia .
¿Cómo funciona PDFShift?
PDFShift opera de forma remota a través de API. Envíe solicitudes POST utilizando C# RestClient con autenticación de clave API. El servidor procesa las solicitudes y devuelve los PDF mediante HTTP. Para el procesamiento local, el motor nativo de IronPDF ofrece mejor rendimiento y seguridad. Compare las opciones de motor nativo y remoto . Para conocer alternativas de API, revise Apryse vs IronPDF y iText vs IronPDF .
¿Cómo puedo crear archivos PDF a partir de HTML?
Ambas herramientas proporcionan conversión HTML con diferentes enfoques. IronPDF ofrece amplias opciones que incluyen archivos HTML ZIP y renderizado personalizado . El tutorial de creación de PDF cubre métodos de generación completos. Para escenarios avanzados, explore la representación de JavaScript y el manejo de CSS responsivo .
¿Cómo creo archivos PDF a partir de URL usando IronPDF?
Para crear archivos PDF a partir de URL se requieren tres líneas. Este ejemplo de código muestra cómo IronPDF permite a los desarrolladores implementar la conversión de URL a PDF :
using IronPdf;
var Renderer = new IronPdf.ChromePdfRenderer();
// Configure render options for better results
Renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
Renderer.RenderingOptions.MarginTop = 25;
Renderer.RenderingOptions.MarginBottom = 25;
// Create a PDF from a URL or local file path
using var pdf = Renderer.RenderUrlAsPdf("___PROTECTED_URL_68___");
// Export to a file or Stream
pdf.SaveAs("url.pdf");using IronPdf;
var Renderer = new IronPdf.ChromePdfRenderer();
// Configure render options for better results
Renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
Renderer.RenderingOptions.MarginTop = 25;
Renderer.RenderingOptions.MarginBottom = 25;
// Create a PDF from a URL or local file path
using var pdf = Renderer.RenderUrlAsPdf("___PROTECTED_URL_68___");
// Export to a file or Stream
pdf.SaveAs("url.pdf");Para páginas autenticadas, consulte Inicios de sesión en sitios web TLS . Para sitios JavaScript, utilice retrasos WaitFor y JavaScript personalizado . Las opciones avanzadas incluyen retrasos de renderizado y conversión de JavaScript a PDF . Para optimizar el rendimiento, consulte Soluciones para renderizado inicial lento .
Salida:

¿Cómo convierto HTML a PDF usando IronPDF?
Convierte HTML a PDF fácilmente:
using IronPdf;
var pdf = new ChromePdfRenderer();
// Add custom CSS for better formatting
pdf.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
pdf.RenderingOptions.EnableJavaScript = true;
// Include web fonts and icons
pdf.RenderingOptions.WaitFor.FontsLoaded();
PdfDocument doc = pdf.RenderHtmlAsPdf("<h1>This is a heading</h1>");
doc.SaveAs("FirstPDFDocument.pdf");using IronPdf;
var pdf = new ChromePdfRenderer();
// Add custom CSS for better formatting
pdf.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
pdf.RenderingOptions.EnableJavaScript = true;
// Include web fonts and icons
pdf.RenderingOptions.WaitFor.FontsLoaded();
PdfDocument doc = pdf.RenderHtmlAsPdf("<h1>This is a heading</h1>");
doc.SaveAs("FirstPDFDocument.pdf");Para HTML complejo, utilice URL base para rutas relativas. Agregue fuentes web e íconos para tipografía. Las opciones de formato adicionales incluyen fuentes personalizadas e idiomas internacionales . Para solucionar problemas con fuentes, consulte Gestión de fuentes y Problemas de kerning de fuentes .

¿Cómo creo archivos PDF a partir de URL usando PDFShift?
La conversión de URL con PDFShift requiere solicitudes POST:
using System;
using RestSharp;
using RestSharp.Authenticators;
using System.IO;
namespace PDFShiftExample
{
class Program
{
static void Main(string[] args)
{
var client = new RestClient("___PROTECTED_URL_69___");
client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");
var request = new RestRequest(Method.POST);
var json = new
{
source = "___PROTECTED_URL_70___",
// Additional options
landscape = false,
use_print = false
};
request.AddJsonBody(json);
var response = client.Execute(request);
if (!response.IsSuccessful)
{
// Handle the unsuccessful response
Console.WriteLine($"Error: {response.StatusCode} - {response.ErrorMessage}");
}
else
{
File.WriteAllBytes("result.pdf", response.RawBytes);
}
}
}
}using System;
using RestSharp;
using RestSharp.Authenticators;
using System.IO;
namespace PDFShiftExample
{
class Program
{
static void Main(string[] args)
{
var client = new RestClient("___PROTECTED_URL_69___");
client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");
var request = new RestRequest(Method.POST);
var json = new
{
source = "___PROTECTED_URL_70___",
// Additional options
landscape = false,
use_print = false
};
request.AddJsonBody(json);
var response = client.Execute(request);
if (!response.IsSuccessful)
{
// Handle the unsuccessful response
Console.WriteLine($"Error: {response.StatusCode} - {response.ErrorMessage}");
}
else
{
File.WriteAllBytes("result.pdf", response.RawBytes);
}
}
}
}¿Cómo convierto HTML a PDF usando PDFShift?
PDFShift proporciona conversión de HTML a PDF:
using System;
using System.IO;
using RestSharp;
using RestSharp.Authenticators;
namespace PDFShiftExample
{
class Program
{
static void Main(string[] args)
{
var client = new RestClient("___PROTECTED_URL_71___");
client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");
var request = new RestRequest(Method.POST);
string documentContent = File.ReadAllText("document.html");
var json = new
{
source = documentContent,
// Additional formatting options
margin = "20px",
format = "A4"
};
request.AddJsonBody(json);
var response = client.Execute(request);
if (!response.IsSuccessful)
{
// Handle the unsuccessful response
Console.WriteLine($"Error: {response.StatusCode}");
}
else
{
File.WriteAllBytes("result.pdf", response.RawBytes);
}
}
}
}using System;
using System.IO;
using RestSharp;
using RestSharp.Authenticators;
namespace PDFShiftExample
{
class Program
{
static void Main(string[] args)
{
var client = new RestClient("___PROTECTED_URL_71___");
client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");
var request = new RestRequest(Method.POST);
string documentContent = File.ReadAllText("document.html");
var json = new
{
source = documentContent,
// Additional formatting options
margin = "20px",
format = "A4"
};
request.AddJsonBody(json);
var response = client.Execute(request);
if (!response.IsSuccessful)
{
// Handle the unsuccessful response
Console.WriteLine($"Error: {response.StatusCode}");
}
else
{
File.WriteAllBytes("result.pdf", response.RawBytes);
}
}
}
}¿Cómo agrego encabezados y pies de página personalizados?
Los encabezados y pies de página mejoran los documentos PDF al proporcionar información coherente en todas las páginas. Tanto IronPDF como PDFShift admiten esta funcionalidad. Para escenarios avanzados, consulte cómo agregar encabezados a las páginas y control de saltos de página . El ejemplo de números de página y saltos de página muestra la implementación completa. Para controlar el diseño, explore los márgenes personalizados y la orientación de la página PDF .
¿Cómo agrego encabezados y pies de página usando IronPDF?
IronPDF ofrece dos métodos para implementar encabezados y pies de página :
TextHeaderFooter : este método utiliza encabezados basados en texto con datos dinámicos.
HtmlHeaderFooter : este enfoque permite crear encabezados y pies de página renderizados en HTML mediante plantillas.
using IronPdf;
var Renderer = new IronPdf.ChromePdfRenderer();
// Configure text header with merge fields
Renderer.RenderingOptions.FirstPageNumber = 1; // use 2 if a cover page will be appended
Renderer.RenderingOptions.TextHeader.DrawDividerLine = true;
Renderer.RenderingOptions.TextHeader.CenterText = "{url}";
Renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica;
Renderer.RenderingOptions.TextHeader.FontSize = 12;
// Add HTML footer with page numbers
Renderer.RenderingOptions.HtmlFooter = new IronPdf.HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>",
Height = 25,
DrawDividerLine = true
};
// Apply custom margins
Renderer.RenderingOptions.MarginTop = 40;
Renderer.RenderingOptions.MarginBottom = 40;
var pdf = Renderer.RenderHtmlAsPdf("<h1>Document with Headers</h1>");
pdf.SaveAs("headers-footers.pdf");using IronPdf;
var Renderer = new IronPdf.ChromePdfRenderer();
// Configure text header with merge fields
Renderer.RenderingOptions.FirstPageNumber = 1; // use 2 if a cover page will be appended
Renderer.RenderingOptions.TextHeader.DrawDividerLine = true;
Renderer.RenderingOptions.TextHeader.CenterText = "{url}";
Renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica;
Renderer.RenderingOptions.TextHeader.FontSize = 12;
// Add HTML footer with page numbers
Renderer.RenderingOptions.HtmlFooter = new IronPdf.HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>",
Height = 25,
DrawDividerLine = true
};
// Apply custom margins
Renderer.RenderingOptions.MarginTop = 40;
Renderer.RenderingOptions.MarginBottom = 40;
var pdf = Renderer.RenderHtmlAsPdf("<h1>Document with Headers</h1>");
pdf.SaveAs("headers-footers.pdf");Para diseños complejos, considere utilizar una tabla de contenido y marcadores . El ejemplo de contornos y marcadores proporciona una estructura de navegación. Para un posicionamiento preciso, utilice el ejemplo de márgenes personalizados y transforme páginas PDF .
¿Cómo agrego encabezados y pies de página usando PDFShift?
PDFShift permite la personalización de documentos con encabezados y pies de página para identificación o marca:
using System;
using RestSharp;
using RestSharp.Authenticators;
using System.IO;
namespace PDFShiftExample
{
class Program
{
static void Main(string[] args)
{
var client = new RestClient("___PROTECTED_URL_72___");
client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");
var request = new RestRequest(Method.POST);
var json = new
{
source = "___PROTECTED_URL_73___",
footer = new {
source = "<div style=\"font-size: 12px\">Page {{page}} of {{total}}</div>",
spacing = "50px"
},
header = new {
source = "<div>Company Name</div>",
spacing = "30px"
}
};
request.AddJsonBody(json);
var response = client.Execute(request);
if (!response.IsSuccessful)
{
// Handle the unsuccessful response
}
else
{
File.WriteAllBytes("result.pdf", response.RawBytes);
}
}
}
}using System;
using RestSharp;
using RestSharp.Authenticators;
using System.IO;
namespace PDFShiftExample
{
class Program
{
static void Main(string[] args)
{
var client = new RestClient("___PROTECTED_URL_72___");
client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");
var request = new RestRequest(Method.POST);
var json = new
{
source = "___PROTECTED_URL_73___",
footer = new {
source = "<div style=\"font-size: 12px\">Page {{page}} of {{total}}</div>",
spacing = "50px"
},
header = new {
source = "<div>Company Name</div>",
spacing = "30px"
}
};
request.AddJsonBody(json);
var response = client.Execute(request);
if (!response.IsSuccessful)
{
// Handle the unsuccessful response
}
else
{
File.WriteAllBytes("result.pdf", response.RawBytes);
}
}
}
}¿Cómo puedo agregar marcas de agua a los archivos PDF?
La marca de agua en archivos PDF añade marca y seguridad a los documentos. Tanto IronPDF como PDFShift admiten marcas de agua. Para obtener opciones adicionales, consulte estampar texto e imágenes y estampar contenido nuevo . El ejemplo de marca de agua PDF demuestra técnicas avanzadas. Para el procesamiento por lotes, utilice el eficiente estampado HTML .
¿Cómo agrego marcas de agua usando IronPDF?
IronPDF permite agregar marcas de agua a archivos PDF mediante HTML. Las marcas de agua pueden incluir opacidad, rotación e hipervínculos. Para ver ejemplos, consulte Ejemplos de marcas de agua en PDF . Para sellos múltiples, considere el estampado HTML eficiente . Las opciones adicionales incluyen fondos y primeros planos, por ejemplo , y dibujar texto y mapas de bits .
using IronPdf;
var Renderer = new IronPdf.ChromePdfRenderer();
using var Pdf = Renderer.RenderUrlAsPdf("___PROTECTED_URL_74___");
// Add text watermark with opacity and rotation
Pdf.WatermarkAllPages("<h2 style='color:red'>SAMPLE</h2>",
IronPdf.Editing.WaterMarkLocation.MiddleCenter,
50, // opacity
-45, // rotation
"___PROTECTED_URL_75___");
// Add image watermark
Pdf.ApplyWatermark("<img src='logo.png' style='width:200px'>",
30, // opacity
IronPdf.Editing.VerticalAlignment.Top,
IronPdf.Editing.HorizontalAlignment.Right);
Pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");using IronPdf;
var Renderer = new IronPdf.ChromePdfRenderer();
using var Pdf = Renderer.RenderUrlAsPdf("___PROTECTED_URL_74___");
// Add text watermark with opacity and rotation
Pdf.WatermarkAllPages("<h2 style='color:red'>SAMPLE</h2>",
IronPdf.Editing.WaterMarkLocation.MiddleCenter,
50, // opacity
-45, // rotation
"___PROTECTED_URL_75___");
// Add image watermark
Pdf.ApplyWatermark("<img src='logo.png' style='width:200px'>",
30, // opacity
IronPdf.Editing.VerticalAlignment.Top,
IronPdf.Editing.HorizontalAlignment.Right);
Pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");Para una marca de agua avanzada, combine con fondos y primeros planos o estampados personalizados . El ejemplo de portada adjunta muestra la marca del documento. Para un control preciso, utilice texto giratorio y escale objetos PDF .

¿Cómo agrego marcas de agua usando PDFShift?
PDFShift permite agregar marcas de agua a los documentos con fines de identificación:
using System;
using RestSharp;
using RestSharp.Authenticators;
using System.IO;
namespace PDFShiftExample
{
class Program
{
static void Main(string[] args)
{
var client = new RestClient("___PROTECTED_URL_76___");
client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");
var request = new RestRequest(Method.POST);
var json = new
{
source = "___PROTECTED_URL_77___",
watermark = new {
image = "___PROTECTED_URL_78___",
offset_x = 50,
offset_y = "100px",
rotate = 45,
opacity = 0.5
}
};
request.AddJsonBody(json);
var response = client.Execute(request);
if (!response.IsSuccessful)
{
// Handle the unsuccessful response
}
else
{
File.WriteAllBytes("result.pdf", response.RawBytes);
}
}
}
}using System;
using RestSharp;
using RestSharp.Authenticators;
using System.IO;
namespace PDFShiftExample
{
class Program
{
static void Main(string[] args)
{
var client = new RestClient("___PROTECTED_URL_76___");
client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");
var request = new RestRequest(Method.POST);
var json = new
{
source = "___PROTECTED_URL_77___",
watermark = new {
image = "___PROTECTED_URL_78___",
offset_x = 50,
offset_y = "100px",
rotate = 45,
opacity = 0.5
}
};
request.AddJsonBody(json);
var response = client.Execute(request);
if (!response.IsSuccessful)
{
// Handle the unsuccessful response
}
else
{
File.WriteAllBytes("result.pdf", response.RawBytes);
}
}
}
}¿Qué tan bien soportan estas herramientas Bootstrap y CSS moderno?
El desarrollo web moderno se basa en marcos CSS para un diseño responsivo, y las bibliotecas PDF deben convertir estos marcos con precisión. Consulte la guía CSS de Bootstrap y Flex . Para un diseño adaptable, verifique la configuración de la ventana gráfica y el zoom y los tamaños de papel personalizados . El ejemplo de tamaño de papel PDF personalizado muestra un tamaño preciso. Para controlar el diseño, explore las funciones de ajuste al papel y zoom y HTML adaptable a PDF .
¿IronPDF es compatible con Bootstrap y los frameworks CSS modernos?
El motor de renderizado Chrome de IronPDF ofrece un amplio soporte para los marcos CSS:
- Bootstrap 5: Flexbox completo y CSS Grid con utilidades responsivas
- Bootstrap 4: Sistemas de tarjetas completos, navegación, componentes de formulario
- Tailwind CSS: todas las clases de utilidad y modificadores responsivos
- Fundación: Sistemas completos de red y componentes
- CSS3 moderno: Flexbox, Grid, propiedades personalizadas, animaciones, transformaciones
Validación: La página de inicio y las plantillas de Bootstrap se convierten con precisión. Consulte la guía de opciones de renderizado . IronPDF admite Angular to PDF y otros marcos. El soporte de marco adicional incluye gráficos JavaScript y representación WebGL . Para optimizar, utilice configuraciones de representación HTML y formato de píxeles perfectos .
Ejemplo de Código: Formulario de Contacto con Bootstrap
using IronPdf;
var renderer = new ChromePdfRenderer();
// Configure for improve Bootstrap rendering
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.RenderDelay = 500; // Allow JS to execute
renderer.RenderingOptions.ViewPortWidth = 1200; // Desktop viewport
string bootstrapContact = @"
<!DOCTYPE html>
<html>
<head>
<link href='___PROTECTED_URL_79___ rel='stylesheet'>
<style>
@media print {
.no-print { display: none; }
}
</style>
</head>
<body>
<div class='container my-5'>
<div class='row justify-content-center'>
<div class='col-lg-8'>
<div class='card shadow'>
<div class='card-header bg-primary text-white'>
<h2 class='mb-0'>Contact Us</h2>
</div>
<div class='card-body'>
<form>
<div class='row g-3'>
<div class='col-md-6'>
<label class='form-label'>First Name</label>
<input type='text' class='form-control' placeholder='John'>
</div>
<div class='col-md-6'>
<label class='form-label'>Last Name</label>
<input type='text' class='form-control' placeholder='Doe'>
</div>
</div>
<div class='mt-3'>
<label class='form-label'>Email Address</label>
<div class='input-group'>
<span class='input-group-text'>@</span>
<input type='email' class='form-control' placeholder='john.doe@example.com'>
</div>
</div>
<div class='mt-3'>
<label class='form-label'>Subject</label>
<select class='form-select'>
<option>General Inquiry</option>
<option>Technical Support</option>
<option>Sales Question</option>
<option>Partnership Opportunity</option>
</select>
</div>
<div class='mt-3'>
<label class='form-label'>Message</label>
<textarea class='form-control' rows='5' placeholder='Your message here...'></textarea>
</div>
<div class='d-flex justify-content-between align-items-center mt-4'>
<div class='form-check'>
<input class='form-check-input' type='checkbox' id='newsletter'>
<label class='form-check-label' for='newsletter'>
Subscribe to newsletter
</label>
</div>
<button type='submit' class='btn btn-primary px-4'>Submit</button>
</div>
</form>
</div>
</div>
<div class='alert alert-info mt-4 d-flex align-items-center' role='alert'>
<svg class='bi flex-shrink-0 me-2' width='24' height='24'></svg>
<div>We typically respond within 24 hours during business days.</div>
</div>
</div>
</div>
</div>
</body>
</html>";
var pdf = renderer.RenderHtmlAsPdf(bootstrapContact);
pdf.SaveAs("contact-form.pdf");using IronPdf;
var renderer = new ChromePdfRenderer();
// Configure for improve Bootstrap rendering
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.RenderDelay = 500; // Allow JS to execute
renderer.RenderingOptions.ViewPortWidth = 1200; // Desktop viewport
string bootstrapContact = @"
<!DOCTYPE html>
<html>
<head>
<link href='___PROTECTED_URL_79___ rel='stylesheet'>
<style>
@media print {
.no-print { display: none; }
}
</style>
</head>
<body>
<div class='container my-5'>
<div class='row justify-content-center'>
<div class='col-lg-8'>
<div class='card shadow'>
<div class='card-header bg-primary text-white'>
<h2 class='mb-0'>Contact Us</h2>
</div>
<div class='card-body'>
<form>
<div class='row g-3'>
<div class='col-md-6'>
<label class='form-label'>First Name</label>
<input type='text' class='form-control' placeholder='John'>
</div>
<div class='col-md-6'>
<label class='form-label'>Last Name</label>
<input type='text' class='form-control' placeholder='Doe'>
</div>
</div>
<div class='mt-3'>
<label class='form-label'>Email Address</label>
<div class='input-group'>
<span class='input-group-text'>@</span>
<input type='email' class='form-control' placeholder='john.doe@example.com'>
</div>
</div>
<div class='mt-3'>
<label class='form-label'>Subject</label>
<select class='form-select'>
<option>General Inquiry</option>
<option>Technical Support</option>
<option>Sales Question</option>
<option>Partnership Opportunity</option>
</select>
</div>
<div class='mt-3'>
<label class='form-label'>Message</label>
<textarea class='form-control' rows='5' placeholder='Your message here...'></textarea>
</div>
<div class='d-flex justify-content-between align-items-center mt-4'>
<div class='form-check'>
<input class='form-check-input' type='checkbox' id='newsletter'>
<label class='form-check-label' for='newsletter'>
Subscribe to newsletter
</label>
</div>
<button type='submit' class='btn btn-primary px-4'>Submit</button>
</div>
</form>
</div>
</div>
<div class='alert alert-info mt-4 d-flex align-items-center' role='alert'>
<svg class='bi flex-shrink-0 me-2' width='24' height='24'></svg>
<div>We typically respond within 24 hours during business days.</div>
</div>
</div>
</div>
</div>
</body>
</html>";
var pdf = renderer.RenderHtmlAsPdf(bootstrapContact);
pdf.SaveAs("contact-form.pdf");Resultado: Un formulario de contacto profesional con controles de formulario de Bootstrap, diseño de cuadrícula, estilo de tarjeta y grupos de entrada, todo representado con precisión en PDF.
Para ver más ejemplos, consulte Gráficos de representación y sitios WebGL . El ejemplo de agregar códigos de barras en HTML muestra elementos HTML adicionales. Para optimizar el rendimiento, utilice recursos PDF, una guía de rendimiento y gestión del tamaño del paquete .
¿PDFShift es compatible con Bootstrap y CSS moderno?
- API en la nube: todas las conversiones mediante llamadas API HTTP a servidores PDFShift
- Compatibilidad con Bootstrap: generalmente maneja bien los diseños de Bootstrap 4/5
- Compatibilidad con CSS3: buen flexbox y renderizado CSS moderno
- Se requiere Internet: no se pueden generar archivos PDF sin conexión
- Precios por documento: se cobra por conversión, no por licencia de desarrollador
Consideraciones clave para PDFShift:
- Dependencia externa: toda generación de PDF requiere Internet y disponibilidad de API externa.
- Privacidad de datos: contenido HTML enviado a servidores de terceros para su procesamiento
- Costos de volumen: el precio por documento puede resultar costoso a gran escala.
- Latencia: Los viajes de ida y vuelta de la red agregan retraso a cada conversión
- Sin capacidad sin conexión: no puede funcionar en entornos sin conexión o con espacio de aire
Impacto en el desarrollo: si bien PDFShift maneja bien Bootstrap, la arquitectura en la nube presenta desventajas operativas:
- Costos continuos por documento frente a la licencia única por desarrollador de IronPDF
- Dependencia de servicios externos frente a procesamiento local en las instalaciones
- Consideraciones de manejo de datos para contenido sensible
- Requisito de conectividad a Internet frente a capacidad sin conexión
Impacto en el desarrollo : La arquitectura en la nube introduce consideraciones operativas:
- Costos continuos por documento versus licencias únicas
- Dependencia externa versus control de procesamiento local
- Requisitos de manejo de datos para contenido sensible
- Requisitos de conectividad a Internet
Para aplicaciones de gran volumen o datos confidenciales, el procesamiento local de IronPDF ofrece mejor control y valor. Considere la generación paralela y el uso de múltiples subprocesos para mejorar el rendimiento. El ejemplo multiproceso muestra procesamiento concurrente. Para conocer alternativas en la nube, consulte Implementación de Azure e integración de AWS Lambda .
Consulte la Guía CSS de Bootstrap y Flexbox y la configuración de representación HTML . Para obtener compatibilidad con CSS moderno, revise los idiomas internacionales y la visibilidad de CMYK y metadatos .
¿Cuáles son las opciones de licencia?
IronPDF ofrece una licencia de desarrollador gratuita . El paquete ligero comienza en $799 , sin costos ocultos. El paquete incluye SaaS y redistribución OEM . Todas las licencias vienen con una garantía de devolución de dinero de 30 días, un año de soporte y actualizaciones, y son válidas para desarrollo, pruebas, puesta en escena y producción con una licencia perpetua. Consulte precios y licencias de IronPDF . Para la gestión de licencias, consulte aplicación de claves de licencia y configuración de claves de licencia . La guía de claves de licencia cubre todos los métodos de configuración. Para solucionar problemas de licencias, consulte No se puede conectar al servidor de licencias y uso de declaraciones .

PDFShift ofrece cinco paquetes disponibles mensual o anualmente utilizando créditos:
- Gratis : 50 créditos mensuales
- Puesta en marcha : 500 créditos mensuales ($9) o 6.000 anuales ($99)
- Boost : 2500 créditos mensuales ($24) o 30 000 anuales ($240)
- Crecimiento : 5.000 créditos mensuales ($39) o 60.000 anuales ($390)
- Negocios : 25.000 créditos mensuales ($99)
Límites de tamaño de archivo: 1 MB (gratis), 5 MB (paquetes pagos).

Visita la página de precios de PDFShift .
¿Qué API de PDF debo elegir?
IronPDF es gratuito para desarrolladores independientes y ofrece amplias funciones de modificación y conversión de PDF. IronPDF ofrece herramientas de edición y formato superiores. La biblioteca convierte HTML en archivos PDF vectoriales para impresión comercial con resultados claros y de alta calidad. Consulte la información sobre licencias de software de Iron . Para obtener capacidades adicionales, explore la organización de PDF , la firma y protección de PDF y las opciones de conversión de PDF . La lista completa de funciones cubre todas las capacidades. Para conocer las funciones empresariales, revise el ejemplo de firmas digitales y el cifrado y descifrado .
PDFShift es una API de HTML a PDF basada en la nube con puntos finales simples y soporte para múltiples idiomas. PDFShift maneja conversiones paralelas a través de solicitudes del servidor. Sin embargo, el servicio carece de funciones avanzadas como creación de formularios PDF , fusión de PDF , reemplazo de texto o edición de metadatos . Para comparar el manejo de formularios, consulte el ejemplo de datos de formulario y cómo completar y editar formularios . Para organizar documentos, revise el ejemplo de combinar archivos PDF y dividir páginas PDF .
Las licencias de IronPDF están basadas en desarrolladores y requieren una compra única. PDFShift utiliza licencias basadas en créditos mensuales o anuales que requieren suscripciones continuas. IronPDF admite la distribución OEM y SaaS; PDFShift no. Para la gestión de licencias, consulte Extensiones y opciones de actualización de IronPDF. El registro de cambios rastrea todas las actualizaciones del producto. Para conocer las opciones de soporte, consulte la guía de solicitud de soporte de ingeniería y las mejores prácticas de soporte .
Comparando ambas herramientas: IronPDF ofrece sustancialmente más funciones. PDFShift ofrece capacidades limitadas de manipulación de PDF. IronPDF convierte URL a PDF en tres líneas, mientras que PDFShift requiere una complejidad de código adicional. IronPDF se integra rápida y fácilmente en proyectos .NET. El sistema en la nube de PDFShift depende de RestSharp y API externas, lo que agrega complejidad a la integración. Para obtener recursos de resolución de problemas, consulte la guía de resolución rápida de problemas y el soporte de ingeniería . Los recursos adicionales incluyen archivos de registro de Azure y archivos de registro de AWS . Para obtener orientación sobre la implementación, revise Solución de problemas de implementación de Azure y depuración de Azure Functions .
Iron Software ofrece cinco herramientas por el precio de dos. La Suite de Hierro incluye:
- IronBarcode - Generación y lectura de códigos de barras
- IronXL - Manipulación de archivos Excel sin Office
- IronOCR - OCR avanzado para extracción de texto IronPDF - Biblioteca completa de manipulación de PDF
- IronWebScraper - Web scraping y extracción de datos
Visite la página de Iron Suite para explorar IRONSUITE. Para obtener más información sobre los productos de Iron Software, consulte la documentación de IronSecureDoc para la seguridad de sus documentos. Las demostraciones de productos muestran aplicaciones del mundo real. Para un análisis competitivo, revise la comparación entre QuestPDF y IronPDF . La página de hitos destaca los logros clave desde 2015.
Preguntas Frecuentes
¿Cómo puedo convertir HTML a PDF en C#?
Puedes usar el método RenderHtmlAsPdf de IronPDF para convertir cadenas de HTML en PDFs. También puedes convertir archivos HTML a PDFs usando RenderHtmlFileAsPdf.
¿Cuáles son los beneficios de usar IronPDF para la manipulación de PDF?
IronPDF ofrece un conjunto robusto de características para la manipulación de PDFs, incluida la creación de PDFs a partir de varios formatos, la extracción de imágenes, la encriptación, las capacidades de edición y la compatibilidad con múltiples plataformas como Windows, Linux y servicios en la nube como Azure y AWS.
¿Cuáles son las características clave de PDFShift?
PDFShift es una API basada en la nube que admite conversiones rápidas de HTML a PDF con características como conversiones paralelas, cabeceras personalizadas, solicitudes asincrónicas y compatibilidad con múltiples lenguajes de programación.
¿En qué se diferencian IronPDF y PDFShift en términos de licencias?
IronPDF ofrece una licencia basada en desarrollador con una compra única y una garantía de reembolso de 30 días. En contraste, PDFShift utiliza un sistema de licencias basado en créditos con planes mensuales y anuales.
¿Puede usarse IronPDF en entornos en la nube?
Sí, IronPDF es compatible con entornos en la nube como Microsoft Azure y AWS, lo que lo hace versátil para diferentes escenarios de implementación.
¿Cómo se añaden cabeceras y pies de página a un PDF usando IronPDF?
IronPDF permite añadir cabeceras y pies de página a PDFs utilizando sus métodos integrados, que se pueden personalizar para incluir texto, imágenes o números de página.
¿Qué plataformas soporta IronPDF?
IronPDF soporta casi todos los sistemas operativos y frameworks compatibles con C#, incluyendo Windows, Linux, .NET Core y también se puede usar en entornos de nube.
¿Cómo puedo instalar IronPDF en mi proyecto de Visual Studio?
IronPDF se puede instalar usando el Administrador de Paquetes NuGet de Visual Studio, la Línea de Comandos de Visual Studio, o descargando directamente desde las páginas de NuGet o IronPDF.
¿Es posible realizar la extracción de imágenes de PDFs usando IronPDF?
Sí, IronPDF proporciona capacidades para extraer imágenes de PDFs, permitiendo a los desarrolladores manipular y reutilizar imágenes fuera del documento original.






