Cómo migrar de PDFPrinting.NET a IronPDF en C#
La migración de PDFPrinting.NET aIronPDFamplía las capacidades de PDF de una biblioteca de sólo impresión a una solución integral que gestiona el ciclo de vida completo de PDF, incluida la creación, manipulación, extracción, seguridad e impresión. Esta guía proporciona una ruta de migración completa, paso a paso, que conserva los flujos de trabajo de impresión existentes al tiempo que añade capacidades de generación de PDF, conversión de HTML y soporte multiplataforma.
Por qué migrar de PDFPrinting.NET a IronPDF
Entendiendo PDFPrinting.NET
PDFPrinting.NET destaca como una solución especializada que ofrece una sencillez y eficacia sin precedentes en la impresión silenciosa de PDF. PDFPrinting.NET, que opera principalmente en el ecosistema Windows, es una biblioteca comercial diseñada específicamente para desarrolladores que necesitan integrar funciones de impresión PDF en sus aplicaciones. Como herramienta dedicada exclusivamente a la impresión silenciosa y robusta de PDF, PDFPrinting.NET encuentra su nicho en la simplificación de la tarea, a menudo compleja, de imprimir documentos mediante programación sin intervención del usuario.
Una de las ventajas más significativas de PDFPrinting.NET es su capacidad para imprimir documentos de forma silenciosa. Se prescinde de las habituales ventanas de diálogo de impresión, lo que facilita procesos de flujo de trabajo totalmente automatizados, algo crucial para aplicaciones que exigen una interacción mínima del usuario.
La limitación de la impresión
Una limitación notable de PDFPrinting.NET es que sólo aborda el aspecto de impresión del procesamiento de PDF. No puede crear, modificar ni manipular documentos PDF, lo que limita su utilidad para los desarrolladores que necesiten soluciones para el ciclo de vida completo de los documentos PDF:
Solo impresión: no se pueden crear, editar ni manipular documentos PDF.
Solo Windows: vinculado a la infraestructura de impresión de Windows, sin compatibilidad con Linux/MacOS. La dependencia de la infraestructura de impresión de Windows restringe su aplicabilidad a entornos exclusivamente Windows, lo que limita la usabilidad multiplataforma.
No se genera PDF: no se pueden convertir HTML, URL ni datos a PDF.
Sin manipulación de documentos: no se pueden fusionar, dividir, agregar marcas de agua ni proteger archivos PDF.
Sin extracción de texto: no se puede leer ni extraer contenido de archivos PDF.
- Sin manejo de formularios: no se pueden rellenar ni aplanar formularios PDF.
Comparación entre PDFPrinting.NET e IronPDF
| Característica | PDFPrinting.NET | IronPDF |
|---|---|---|
| Funcionalidad principal | Impresión silenciosa de PDF | Manejo del ciclo completo (crear, editar, imprimir) |
| Soporte de Plataforma | Sólo para Windows | Plataforma cruzada |
| Capacidad de creación/manipulación de PDF | No | Sí |
| Conversión de HTML a PDF | No | Sí |
| Adecuación para flujos de trabajo automatizados | Alta | Alta |
| Dependencias adicionales | Se basa en impresoras Windows | Motor interno del navegador para la renderización |
| Impresión silenciosa | Sí | Sí |
| Extracción de texto | No soportado | Soporte completo |
| Licencias | Comercial | Comercial |
IronPDF presenta una solución más completa al abordar el ciclo de vida completo de la gestión de PDF. Facilita la creación, edición, conversión e impresión de documentos PDF, ofreciendo a los desarrolladores un conjunto completo de funciones a través de una API unificada. A diferencia de PDFPrinting.NET,IronPDFse puede implementar en diferentes plataformas, lo que lo convierte en una opción versátil para aplicaciones que funcionan en diversos entornos.
Para los equipos que planifican la adopción de .NET 10 y C# 14 hasta 2025 y 2026,IronPDFproporciona una solución PDF completa que funciona en entornos Windows, Linux y macOS.
Antes de empezar
Prerrequisitos
- Entorno .NET: .NET Framework 4.6.2+ o .NET Core 3.1+ / .NET 5/6/7/8/9+
- Acceso a NuGet: Capacidad para instalar paquetes NuGet
- Licencia de IronPDF: Obtenga su clave de licencia en ironpdf.com
Cambios en el paquete NuGet
# Remove PDFPrinting.NET
dotnet remove package PDFPrinting.NET
# Install IronPDF
dotnet add package IronPdf# Remove PDFPrinting.NET
dotnet remove package PDFPrinting.NET
# Install IronPDF
dotnet add package IronPdfConfiguración de licencias
// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";Identificar el uso de PDFPrinting.NET
# Find PDFPrinting.NET usage
grep -r "PDFPrinting\|PDFPrinter" --include="*.cs" .
# Find print-related code
grep -r "\.Print(\|PrinterName\|GetPrintDocument" --include="*.cs" .# Find PDFPrinting.NET usage
grep -r "PDFPrinting\|PDFPrinter" --include="*.cs" .
# Find print-related code
grep -r "\.Print(\|PrinterName\|GetPrintDocument" --include="*.cs" .Referencia completa de la API
Cambios en el espacio de nombres
// Before: PDFPrinting.NET
using PDFPrinting.NET;
using PDFPrintingNET;
// After: IronPDF
using IronPdf;
using IronPdf.Rendering;
using IronPdf.Printing;// Before: PDFPrinting.NET
using PDFPrinting.NET;
using PDFPrintingNET;
// After: IronPDF
using IronPdf;
using IronPdf.Rendering;
using IronPdf.Printing;Asignaciones de clases principales
| PDFPrinting.NET | IronPDF | Notas |
|---|---|---|
| <código>PDFPrinter</código | Documento PDF | Objeto PDF principal |
| <código>HtmlToPdfConverter</código | <código>ChromePdfRenderer</código | Generación de PDF |
| <código>WebPageToPdfConverter</código | <código>ChromePdfRenderer</código | Conversión de URL |
| Propiedades de configuración de impresión | <código>Configuración de impresión</código | Configuración de impresión |
Métodos de impresión
| PDFPrinting.NET | IronPDF | Notas |
|---|---|---|
printer.Print(filePath) | pdf.Print() | Imprimir en la impresora predeterminada |
| <código>printer.Print(ruta, printerName)</código | <código>pdf.Print(printerName)</código | Imprimir en una impresora específica |
| <código>printer.PrinterName = "..."</código | <código>pdf.Print("...")</código | Especificar impresora |
| <código>printer.GetPrintDocument(path)</código | <código>pdf.GetPrintDocument()</código | Obtener PrintDocument |
impresora.Copias = n | printSettings.NumberOfCopies = n | Número de copias |
printer.Duplex = true | printSettings.DuplexMode = Duplex.Vertical | Impresión a doble cara |
printer.CollatePages = true | printSettings.Collate = true | Clasificación |
Nuevas funciones no disponibles en PDFPrinting.NET
| Características de IronPDF | Descripción |
|---|---|
renderer.RenderHtmlAsPdf(html) | Conversión de HTML a PDF |
| <código>renderer.RenderUrlAsPdf(url)</código | Conversión de URL a PDF |
| <código>PdfDocument.Merge(pdfs)</código | Combinar varios PDF |
| <código>pdf.ApplyWatermark(html)</código | Añadir marcas de agua |
| <código>pdf.SecuritySettings.UserPassword</código | Protección mediante contraseña |
| <código>pdf.ExtractAllText()</código | Extracción de texto |
Ejemplos de migración de código
Ejemplo 1: Conversión de HTML a PDF
Antes (PDFPrinting.NET):
// NuGet: Install-Package PDFPrinting.NET
using PDFPrinting.NET;
using System;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
string html = "<html><body><h1>Hello World</h1></body></html>";
converter.ConvertHtmlToPdf(html, "output.pdf");
Console.WriteLine("PDF created successfully");
}
}// NuGet: Install-Package PDFPrinting.NET
using PDFPrinting.NET;
using System;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
string html = "<html><body><h1>Hello World</h1></body></html>";
converter.ConvertHtmlToPdf(html, "output.pdf");
Console.WriteLine("PDF created successfully");
}
}Después (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string html = "<html><body><h1>Hello World</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string html = "<html><body><h1>Hello World</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully");
}
}PDFPrinting.NET utiliza <código>HtmlToPdfConverter</códigocon ConvertHtmlToPdf(html, outputPath) que combina la renderización y el guardado en una sola llamada.IronPDFutiliza <código>ChromePdfRenderer</códigocon RenderHtmlAsPdf() que devuelve un objeto Documento PDFque luego se guarda con SaveAs(). Esta separación ofrece más flexibilidad: se puede manipular el PDF (añadir marcas de agua, combinar con otros documentos, añadir seguridad) antes de guardarlo.
IronPDF ofrece funciones como la conversión de HTML a PDF, que permite a los desarrolladores convertir contenido web en PDF, aprovechando las modernas tecnologías web para la creación de documentos. Al aprovechar internamente los motores de los navegadores,IronPDFreproduce con precisión el estilo y la representación de los documentos web en PDF. Consulte la documentación HTML a PDF para ver ejemplos completos.
Ejemplo 2: Conversión de URL a PDF
Antes (PDFPrinting.NET):
// NuGet: Install-Package PDFPrinting.NET
using PDFPrinting.NET;
using System;
class Program
{
static void Main()
{
var converter = new WebPageToPdfConverter();
string url = "https://www.example.com";
converter.Convert(url, "webpage.pdf");
Console.WriteLine("PDF from URL created successfully");
}
}// NuGet: Install-Package PDFPrinting.NET
using PDFPrinting.NET;
using System;
class Program
{
static void Main()
{
var converter = new WebPageToPdfConverter();
string url = "https://www.example.com";
converter.Convert(url, "webpage.pdf");
Console.WriteLine("PDF from URL created successfully");
}
}Después (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string url = "https://www.example.com";
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("webpage.pdf");
Console.WriteLine("PDF from URL created successfully");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string url = "https://www.example.com";
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("webpage.pdf");
Console.WriteLine("PDF from URL created successfully");
}
}PDFPrinting.NET utiliza <código>WebPageToPdfConverter</códigocon Convert(url, outputPath).IronPDFutiliza la misma clase <código>ChromePdfRenderer</códigocon el método RenderUrlAsPdf(). Tenga en cuenta queIronPDFutiliza una única clase de renderizador tanto para cadenas HTML como para URL, lo que simplifica su código cuando necesita ambas capacidades. Más información en nuestros tutoriales.
Ejemplo 3: Encabezados y pies de página
Antes (PDFPrinting.NET):
// NuGet: Install-Package PDFPrinting.NET
using PDFPrinting.NET;
using System;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
converter.HeaderText = "Company Report";
converter.FooterText = "Page {page} of {total}";
string html = "<html><body><h1>Document Content</h1></body></html>";
converter.ConvertHtmlToPdf(html, "report.pdf");
Console.WriteLine("PDF with headers/footers created");
}
}// NuGet: Install-Package PDFPrinting.NET
using PDFPrinting.NET;
using System;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
converter.HeaderText = "Company Report";
converter.FooterText = "Page {page} of {total}";
string html = "<html><body><h1>Document Content</h1></body></html>";
converter.ConvertHtmlToPdf(html, "report.pdf");
Console.WriteLine("PDF with headers/footers created");
}
}Después (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:center'>Company Report</div>"
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>"
};
string html = "<html><body><h1>Document Content</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("report.pdf");
Console.WriteLine("PDF with headers/footers created");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:center'>Company Report</div>"
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>"
};
string html = "<html><body><h1>Document Content</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("report.pdf");
Console.WriteLine("PDF with headers/footers created");
}
}PDFPrinting.NET utiliza propiedades de cadena simples HeaderText y FooterText con marcadores de posición {page} y {total}.IronPDFutiliza objetos HtmlHeaderFooter con una propiedad HtmlFragment que acepta HTML completo, lo que permite un estilo enriquecido con CSS. Observe el cambio de sintaxis del marcador de posición: PDFPrinting.NET utiliza {total} mientras queIronPDFutiliza {total-pages}.
Notas de migración críticas
Cambio en la sintaxis de los marcadores
Los marcadores de posición de encabezado/pie de página difieren según las bibliotecas:
// PDFPrinting.NET placeholders
"Page {page} of {total}"
//IronPDFplaceholders
"Page {page} of {total-pages}"// PDFPrinting.NET placeholders
"Page {page} of {total}"
//IronPDFplaceholders
"Page {page} of {total-pages}"Patrón de carga e impresión
PDFPrinting.NET pasa las rutas de los archivos directamente;IronPDFcarga primero:
// PDFPrinting.NET: Direct path to Print()
printer.Print("document.pdf");
// IronPDF: Load first, then operate
var pdf = PdfDocument.FromFile("document.pdf");
pdf.Print();// PDFPrinting.NET: Direct path to Print()
printer.Print("document.pdf");
// IronPDF: Load first, then operate
var pdf = PdfDocument.FromFile("document.pdf");
pdf.Print();Migración de la configuración de impresión
PDFPrinting.NET utiliza propiedades;IronPDFutiliza un objeto de configuración:
// PDFPrinting.NET: Properties on printer object
printer.Copies = 2;
printer.Duplex = true;
// IronPDF: Settings object
var settings = new PrintSettings
{
NumberOfCopies = 2,
DuplexMode = System.Drawing.Printing.Duplex.Vertical
};
pdf.Print(settings);// PDFPrinting.NET: Properties on printer object
printer.Copies = 2;
printer.Duplex = true;
// IronPDF: Settings object
var settings = new PrintSettings
{
NumberOfCopies = 2,
DuplexMode = System.Drawing.Printing.Duplex.Vertical
};
pdf.Print(settings);Cabeceras HTML frente a cabeceras de texto
// PDFPrinting.NET: Simple text
converter.HeaderText = "Company Report";
// IronPDF: HTML completowith styling
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:center'>Company Report</div>"
};// PDFPrinting.NET: Simple text
converter.HeaderText = "Company Report";
// IronPDF: HTML completowith styling
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:center'>Company Report</div>"
};Nuevas capacidades tras la migración
Tras migrar a IronPDF, obtendrá funciones que PDFPrinting.NET no puede ofrecer:
Fusión de PDF
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");Marcas de agua
pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");Protección con contraseña
pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";Extracción de texto
string text = pdf.ExtractAllText();string text = pdf.ExtractAllText();Flujo de trabajo "Generar y luego imprimir"
Con IronPDF, puede generar archivos PDF e imprimirlos en un solo flujo de trabajo:
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Invoice</h1>");
pdf.Print("Invoice Printer");var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Invoice</h1>");
pdf.Print("Invoice Printer");Impresión multiplataforma
PDFPrinting.NET es exclusivo de Windows.IronPDFes multiplataforma:
Ventanas
pdf.Print("HP LaserJet");pdf.Print("HP LaserJet");Linux
// Requires CUPS (Common Unix Printing System)
// Install: apt-get install cups
pdf.Print("HP_LaserJet"); // CUPS uses underscores instead of spaces// Requires CUPS (Common Unix Printing System)
// Install: apt-get install cups
pdf.Print("HP_LaserJet"); // CUPS uses underscores instead of spacesmacOS
pdf.Print("HP LaserJet");pdf.Print("HP LaserJet");Resumen comparativo de características
| Característica | PDFPrinting.NET | IronPDF |
|---|---|---|
| Impresión silenciosa | ✓ | ✓ |
| Ajustes de impresión | ✓ | ✓ |
| HTML a PDF | ✗ | ✓ |
| URL a PDF | ✗ | ✓ |
| Encabezados/pies de página | Básico | HTML completo |
| Fusionar PDF | ✗ | ✓ |
| Dividir PDF | ✗ | ✓ |
| Marcas de agua | ✗ | ✓ |
| Extracción de Texto | ✗ | ✓ |
| Protección por contraseña | ✗ | ✓ |
| Multiplataforma | ✗ | ✓ |
Lista de comprobación de la migración
Pre-Migración
- Inventario de todo el uso de PDFPrinting.NET en el código base
- Documentar todos los nombres de impresoras utilizados actualmente
- Tenga en cuenta todas las configuraciones de configuración de impresión
- Identificar si se necesita soporte multiplataforma
- Planifique el almacenamiento de la clave de licencia deIronPDF(se recomiendan variables de entorno)
- Pruebe primero con la licencia de prueba de IronPDF
Cambios en el paquete
- Eliminar el paquete NuGet de
PDFPrinting.NET - Instalar el paquete NuGet
IronPdf:dotnet add package IronPdf
Cambios de código
- Actualizar las importaciones de espacios de nombres
- Reemplace <código>HtmlToPdfConverter</códigocon
ChromePdfRenderer - Reemplace <código>WebPageToPdfConverter</códigocon
ChromePdfRenderer - Reemplace
ConvertHtmlToPdf(html, path)conRenderHtmlAsPdf(html).SaveAs(path) - Reemplace
Convert(url, path)conRenderUrlAsPdf(url).SaveAs(path) - Actualizar el encabezado/pie de página de
HeaderText/FooterTextaHtmlHeader/HtmlFooter - Actualizar la sintaxis del marcador de posición (
{total}→{total-pages}) - Convertir llamadas de impresión en un patrón de cargar y luego imprimir
- Actualizar la configuración de impresión en el objeto
PrintSettings
Posmigración
- Prueba de impresión en todas las plataformas de destino
- Verificar la representación del encabezado/pie de página
- Considere agregar generación de PDF para documentos dinámicos
- Agregue nuevas capacidades (fusión, marcas de agua, seguridad) según sea necesario






