Saltar al pie de página
GUíAS DE MIGRACIóN

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:

  1. Solo impresión: no se pueden crear, editar ni manipular documentos PDF.

  2. 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.

  3. No se genera PDF: no se pueden convertir HTML, URL ni datos a PDF.

  4. Sin manipulación de documentos: no se pueden fusionar, dividir, agregar marcas de agua ni proteger archivos PDF.

  5. Sin extracción de texto: no se puede leer ni extraer contenido de archivos PDF.

  6. Sin manejo de formularios: no se pueden rellenar ni aplanar formularios PDF.

Comparación entre PDFPrinting.NET e IronPDF

CaracterísticaPDFPrinting.NETIronPDF
Funcionalidad principalImpresión silenciosa de PDFManejo del ciclo completo (crear, editar, imprimir)
Soporte de PlataformaSólo para WindowsPlataforma cruzada
Capacidad de creación/manipulación de PDFNo
Conversión de HTML a PDFNo
Adecuación para flujos de trabajo automatizadosAltaAlta
Dependencias adicionalesSe basa en impresoras WindowsMotor interno del navegador para la renderización
Impresión silenciosa
Extracción de textoNo soportadoSoporte completo
LicenciasComercialComercial

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

  1. Entorno .NET: .NET Framework 4.6.2+ o .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. Acceso a NuGet: Capacidad para instalar paquetes NuGet
  3. 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 IronPdf
SHELL

Configuració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";
$vbLabelText   $csharpLabel

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" .
SHELL

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;
$vbLabelText   $csharpLabel

Asignaciones de clases principales

PDFPrinting.NETIronPDFNotas
<código>PDFPrinter</códigoDocumento PDFObjeto PDF principal
<código>HtmlToPdfConverter</código<código>ChromePdfRenderer</códigoGeneración de PDF
<código>WebPageToPdfConverter</código<código>ChromePdfRenderer</códigoConversión de URL
Propiedades de configuración de impresión<código>Configuración de impresión</códigoConfiguración de impresión

Métodos de impresión

PDFPrinting.NETIronPDFNotas
printer.Print(filePath)pdf.Print()Imprimir en la impresora predeterminada
<código>printer.Print(ruta, printerName)</código<código>pdf.Print(printerName)</códigoImprimir en una impresora específica
<código>printer.PrinterName = "..."</código<código>pdf.Print("...")</códigoEspecificar impresora
<código>printer.GetPrintDocument(path)</código<código>pdf.GetPrintDocument()</códigoObtener PrintDocument
impresora.Copias = nprintSettings.NumberOfCopies = nNúmero de copias
printer.Duplex = trueprintSettings.DuplexMode = Duplex.VerticalImpresión a doble cara
printer.CollatePages = trueprintSettings.Collate = trueClasificación

Nuevas funciones no disponibles en PDFPrinting.NET

Características de IronPDFDescripción
renderer.RenderHtmlAsPdf(html)Conversión de HTML a PDF
<código>renderer.RenderUrlAsPdf(url)</códigoConversión de URL a PDF
<código>PdfDocument.Merge(pdfs)</códigoCombinar varios PDF
<código>pdf.ApplyWatermark(html)</códigoAñadir marcas de agua
<código>pdf.SecuritySettings.UserPassword</códigoProtección mediante contraseña
<código>pdf.ExtractAllText()</códigoExtracció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");
    }
}
$vbLabelText   $csharpLabel

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");
    }
}
$vbLabelText   $csharpLabel

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");
    }
}
$vbLabelText   $csharpLabel

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");
    }
}
$vbLabelText   $csharpLabel

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");
    }
}
$vbLabelText   $csharpLabel

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");
    }
}
$vbLabelText   $csharpLabel

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}"
$vbLabelText   $csharpLabel

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();
$vbLabelText   $csharpLabel

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);
$vbLabelText   $csharpLabel

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>"
};
$vbLabelText   $csharpLabel

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");
$vbLabelText   $csharpLabel

Marcas de agua

pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");
pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");
$vbLabelText   $csharpLabel

Protección con contraseña

pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
$vbLabelText   $csharpLabel

Extracción de texto

string text = pdf.ExtractAllText();
string text = pdf.ExtractAllText();
$vbLabelText   $csharpLabel

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");
$vbLabelText   $csharpLabel

Impresión multiplataforma

PDFPrinting.NET es exclusivo de Windows.IronPDFes multiplataforma:

Ventanas

pdf.Print("HP LaserJet");
pdf.Print("HP LaserJet");
$vbLabelText   $csharpLabel

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 spaces
$vbLabelText   $csharpLabel

macOS

pdf.Print("HP LaserJet");
pdf.Print("HP LaserJet");
$vbLabelText   $csharpLabel

Resumen comparativo de características

CaracterísticaPDFPrinting.NETIronPDF
Impresión silenciosa
Ajustes de impresión
HTML a PDF
URL a PDF
Encabezados/pies de páginaBásicoHTML 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) con RenderHtmlAsPdf(html).SaveAs(path)
  • Reemplace Convert(url, path) con RenderUrlAsPdf(url).SaveAs(path)
  • Actualizar el encabezado/pie de página de HeaderText / FooterText a HtmlHeader / 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

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más