Saltar al pie de página
USANDO IRONPDF

Cómo Recortar un Archivo PDF en C#

Cortar y recortar páginas PDF usando la librería IronPDF en C#;

Recortar y cortar páginas PDF siempre es una tarea desafiante para los desarrolladores en C#. Dibujar un cuadro de recorte alrededor de tu área deseada en un documento PDF y luego guardar solo esa porción no es sencillo. Afortunadamente, existe una solución en la Biblioteca IronPDF para .NET en C#.

La biblioteca IronPDF .NET

La Biblioteca IronPDF for .NET PDF es una biblioteca .NET para C# que permite a los desarrolladores crear, editar y manipular archivos PDF. Es muy popular entre los desarrolladores C# por su capacidad de generación de PDF, la cual les permite trabajar con archivos PDF sin tener instalado Adobe Acrobat. IronPDF para .NET también permite la conversión entre diferentes formatos como Conversión de HTML a PDF, Convertir URLs a PDF e Imagen a Conversión PDF.

También soporta añadir Encabezados y Pies de Página Personalizados, Firmas Digitales en PDFs, anotaciones y Agregar/Eliminar Archivos Adjuntos de PDFs, contraseñas de usuario y propietario, y otras opciones de seguridad. IronPDF tiene un motor rápido de Chromium para una experiencia de renderizado superior. También proporciona Soporte de Multihilo completo y Capacidades Asíncronas.

Requisitos previos

Antes de comenzar, se debe descargar e instalar Visual Studio 2022 (la última versión). Visual Studio es necesario para construir aplicaciones C#. La instalación configurará el entorno .NET, después de lo cual el sistema local estará listo para hacer un convertidor de PDF a JPG. Puedes descargar Visual Studio en esta Página de Descargas de Visual Studio.

Instalación de IronPDF

Hay múltiples formas de instalar IronPDF:

  1. Puedes descargar IronPDF desde la solución del Administrador de Paquetes NuGet en tu proyecto C#, que se crea usando Visual Studio. Accede al Administrador de Paquetes NuGet mediante Herramientas o haciendo clic derecho en el Explorador de Soluciones. Busca el paquete IronPDF e instálalo.
  2. Otra forma de instalar IronPDF es descargándolo directamente desde la Página NuGet de IronPDF.

Cortar un archivo PDF con IronPDF en C#;

El siguiente proceso paso a paso te ayudará a recortar una página PDF. No es sencillo, pero podemos hacer uso de algunos métodos para lograr esta tarea. ¡Comencemos!

Paso 1: Cargar documento PDF

Para cargar un archivo PDF desde una ubicación local en este proyecto, IronPDF proporciona un método FromFile presente en la clase PdfDocument. El siguiente ejemplo de código demuestra cómo abrir un archivo PDF existente:

// Load an existing PDF document from a file
PdfDocument pdf = PdfDocument.FromFile("Input.pdf");
// Load an existing PDF document from a file
PdfDocument pdf = PdfDocument.FromFile("Input.pdf");
' Load an existing PDF document from a file
Dim pdf As PdfDocument = PdfDocument.FromFile("Input.pdf")
$vbLabelText   $csharpLabel

El documento cargado es el siguiente:

Cómo recortar un archivo PDF en C#, Figura 1: Un archivo de código de barras PDF de ejemplo Un archivo de código de barras PDF de ejemplo

Paso 2: Cargar una página específica de un documento PDF

Ahora que el archivo está abierto para editar, crea un objeto PdfDocument separado y almacena la página específica que necesita ser recortada usando el método CopyPage. Simplemente pasa el índice de la página que necesita ser recortada. Aquí, el ejemplo de código recortará la primera página del documento PDF.

// Copy the first page of the loaded PDF document
PdfDocument loadedPage = pdf.CopyPage(0);
// Copy the first page of the loaded PDF document
PdfDocument loadedPage = pdf.CopyPage(0);
' Copy the first page of the loaded PDF document
Dim loadedPage As PdfDocument = pdf.CopyPage(0)
$vbLabelText   $csharpLabel

Paso 3: Convertir la página PDF cargada en una imagen

El método de Convertir Página PDF a Imagen de Alta Resolución ofrece la facilidad de guardar la página PDF en un archivo de imagen de alta resolución. El siguiente código ayuda a convertir la página seleccionada a una imagen para recortar.

// Convert the PDF page to a high-resolution PNG image
loadedPage.RasterizeToImageFiles(@"C:\Image\Page_to_be_Cropped.png");
// Convert the PDF page to a high-resolution PNG image
loadedPage.RasterizeToImageFiles(@"C:\Image\Page_to_be_Cropped.png");
' Convert the PDF page to a high-resolution PNG image
loadedPage.RasterizeToImageFiles("C:\Image\Page_to_be_Cropped.png")
$vbLabelText   $csharpLabel

Ahora la página se convertirá en un archivo de imagen. La salida es una imagen PNG de alta calidad.

Cómo Recortar Archivo PDF en C#, Figura 2: El archivo de imagen PNG de alta calidad de salida El archivo de imagen PNG de alta calidad de salida

Ahora, la página específica está separada del documento original y lista para ser recortada.

Paso 4: Recuperar las dimensiones de la página cargada

Para recortar el PDF, es necesario crear un cuadro de recorte con un cierto ancho y altura. A tal efecto, se creará un nuevo documento usando la clase ChromePdfRenderer. Proporciona la opción de personalizar el tamaño de la página PDF según las necesidades, y los datos se dividen uniformemente a través de las páginas.

Antes de crear un ChromePdfRenderer, primero, obtén las dimensiones de la página cargada en el paso 2. Luego, usa estas dimensiones mientras ajustas el tamaño de página personalizado para crear un cuadro de recorte. El siguiente ejemplo de código te ayudará a obtener el ancho y la altura de la página:

// Retrieve dimensions of the loaded PDF page
PdfPagesCollection pages = loadedPage.Pages;
PdfPage pdfPage = pages[0];

// Dimensions retrieved in mm
float width = pdfPage.Width;
float height = pdfPage.Height;
// Retrieve dimensions of the loaded PDF page
PdfPagesCollection pages = loadedPage.Pages;
PdfPage pdfPage = pages[0];

// Dimensions retrieved in mm
float width = pdfPage.Width;
float height = pdfPage.Height;
' Retrieve dimensions of the loaded PDF page
Dim pages As PdfPagesCollection = loadedPage.Pages
Dim pdfPage As PdfPage = pages(0)

' Dimensions retrieved in mm
Dim width As Single = pdfPage.Width
Dim height As Single = pdfPage.Height
$vbLabelText   $csharpLabel

Primero, recupere el número total de páginas en el archivo PDF cargado usando PdfPagesCollection. Luego, pasa esa página a una instancia de PdfPage para obtener los valores de dimensión de la página de las propiedades Width y Height de la página. ¡Todo listo! Ahora, sigamos al siguiente paso para crear un cuadro de recorte personalizado.

Paso 5: Configurar el tamaño de página personalizado del PDF

El siguiente código ayudará a crear un tamaño de papel PDF personalizado que funcionará como un cuadro de recorte, para recortar el contenido en diferentes segmentos de páginas.

// Create a ChromePdfRenderer to set up a custom paper size
ChromePdfRenderer pdfRenderer = new ChromePdfRenderer();
pdfRenderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.Custom;
pdfRenderer.RenderingOptions.SetCustomPaperSizeInMillimeters(width, height / 4);
pdfRenderer.RenderingOptions.ForcePaperSize = true;
// Create a ChromePdfRenderer to set up a custom paper size
ChromePdfRenderer pdfRenderer = new ChromePdfRenderer();
pdfRenderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.Custom;
pdfRenderer.RenderingOptions.SetCustomPaperSizeInMillimeters(width, height / 4);
pdfRenderer.RenderingOptions.ForcePaperSize = true;
' Create a ChromePdfRenderer to set up a custom paper size
Dim pdfRenderer As New ChromePdfRenderer()
pdfRenderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.Custom
'INSTANT VB WARNING: Instant VB cannot determine whether both operands of this division are integer types - if they are then you should use the VB integer division operator:
pdfRenderer.RenderingOptions.SetCustomPaperSizeInMillimeters(width, height / 4)
pdfRenderer.RenderingOptions.ForcePaperSize = True
$vbLabelText   $csharpLabel

En el código anterior, se crea un ChromePdfRenderer, que se usa para crear un nuevo documento PDF. Luego, se establece el valor de la propiedad PdfPaperSize en Custom. Por último, se establece un margen de página personalizado utilizando las dimensiones obtenidas en el paso 4.

Establece el ancho al ancho original de la página y disminuye la altura en 1/4 de la longitud original de la página. Esto hace que la página funcione como un cuadro de medios de forma rectangular para el contenido.

Nota: Puedes usar ForcePaperSize = true para asegurarte de que se aplique el tamaño personalizado. Para establecer márgenes personalizados, por favor visita esta Guía para Personalizar los Márgenes de PDF.

Paso 6: Crear un nuevo documento con HTML

Ahora, este paso final creará un nuevo documento usando el PDF de tamaño de página personalizado y la imagen guardada de la página cargada.

// Render HTML to a PDF document with a custom paper size using the cropped image
var croppedPdf = pdfRenderer.RenderHtmlAsPdf("<img src='Page_to_be_Cropped.png'/>", @"C:\Image\");
// Render HTML to a PDF document with a custom paper size using the cropped image
var croppedPdf = pdfRenderer.RenderHtmlAsPdf("<img src='Page_to_be_Cropped.png'/>", @"C:\Image\");
' Render HTML to a PDF document with a custom paper size using the cropped image
Dim croppedPdf = pdfRenderer.RenderHtmlAsPdf("<img src='Page_to_be_Cropped.png'/>", "C:\Image\")
$vbLabelText   $csharpLabel

Ahora vamos a guardar el documento utilizando el método SaveAs.

// Save the newly cropped document
croppedPdf.SaveAs("Cropped.pdf");
// Save the newly cropped document
croppedPdf.SaveAs("Cropped.pdf");
' Save the newly cropped document
croppedPdf.SaveAs("Cropped.pdf")
$vbLabelText   $csharpLabel

Salida

Cómo Recortar Archivo PDF en C#, Figura 3: El archivo PDF recortado El archivo PDF recortado

En la salida, puedes ver que una sola imagen ahora está dividida en múltiples páginas con el cuadro de recorte personalizado creado. Puedes copiar una página específica que necesites usando el siguiente código:

// Copy and save a specific page from the cropped document
croppedPdf.CopyPage(1).SaveAs("Cropped_Page1.pdf");
// Copy and save a specific page from the cropped document
croppedPdf.CopyPage(1).SaveAs("Cropped_Page1.pdf");
' Copy and save a specific page from the cropped document
croppedPdf.CopyPage(1).SaveAs("Cropped_Page1.pdf")
$vbLabelText   $csharpLabel

Conclusión

Este artículo demostró cómo recortar documentos PDF creando un cuadro de recorte virtual en términos de páginas usando IronPDF para .NET Framework. El método RasterizeToImageFiles ayuda a convertir la página en una imagen que se usa para crear un documento PDF perfecto en píxeles.

IronPDF también proporciona otras herramientas de PDF que pueden rotar páginas PDF, cambiar texto en PDF, establecer márgenes, formatear PDFs, convertirlos, y más. Para aprender más sobre IronPDF para .NET y acceder a características adicionales para Manipular Archivos PDF con IronPDF o cómo Personalizar el Tamaño de Papel PDF.

La Biblioteca IronPDF for .NET es gratuita para desarrollo, pero necesita ser licenciada para uso comercial. Descarga la potente biblioteca IronPDF para .NET desde este IronPDF ZIP Download y pruébala.

Preguntas Frecuentes

¿Cómo puedo recortar una página PDF en C# sin perder formato?

Puedes usar IronPDF para recortar una página PDF en C# cargando el documento PDF, convirtiendo la página deseada en una imagen de alta resolución y usando las dimensiones de la imagen para configurar un cuadro de recorte con la clase `ChromePdfRenderer`. Esto te permite renderizar un PDF recortado sin perder formato.

¿Qué pasos están involucrados en recortar un PDF usando C#?

Para recortar un PDF usando C#, primero cargas el PDF con `PdfDocument.FromFile`, extraes la página específica que quieres recortar, la conviertes a una imagen usando `RasterizeToImageFiles`, y luego usas `ChromePdfRenderer` para aplicar un cuadro de recorte y renderizar la página PDF recortada final.

¿Puedo usar IronPDF para convertir HTML a PDF?

Sí, IronPDF te permite convertir HTML a PDF usando métodos como `RenderHtmlAsPdf` para cadenas HTML y `RenderHtmlFileAsPdf` para archivos HTML. Esto es útil para generar PDFs desde páginas web o contenido HTML.

¿Necesito algún software específico para usar IronPDF en la manipulación de PDF?

Para usar IronPDF, necesitas tener instalado Visual Studio 2022 para configurar el entorno .NET necesario para aplicaciones C#. También necesitas instalar IronPDF a través del Administrador de Paquetes NuGet.

¿Es posible agregar firmas digitales a un PDF con IronPDF?

Sí, IronPDF soporta agregar firmas digitales a PDFs, lo que mejora la seguridad y autenticidad del documento. Esta característica es parte de las extensas capacidades de la biblioteca para la manipulación de PDF.

¿Cuáles son algunos consejos para la resolución de problemas al usar IronPDF en C#?

Si encuentras problemas con IronPDF, asegúrate de que todas las dependencias estén correctamente instaladas a través de NuGet, verifica que tu entorno de Visual Studio esté configurado para desarrollo .NET, y consulta la documentación oficial de IronPDF para obtener orientación sobre métodos y clases específicos.

¿Cuál es el propósito de usar la clase `ChromePdfRenderer` en IronPDF?

La clase `ChromePdfRenderer` en IronPDF se utiliza para renderizar documentos PDF con configuraciones específicas, como establecer tamaños de página y cuadros de recorte. Es especialmente útil cuando necesitas personalizar la apariencia o las dimensiones del PDF de salida.

¿Cómo puedo asegurar que mis PDFs sean seguros al usar IronPDF?

IronPDF te permite mejorar la seguridad de los PDF al agregar contraseñas de usuario y propietario, así como aplicar firmas digitales. Estas características ayudan a proteger tus documentos contra el acceso y las alteraciones no autorizadas.

¿IronPDF es totalmente compatible con .NET 10 y qué beneficios aporta eso al recorte de PDF en C#?

Sí, IronPDF es totalmente compatible con .NET 10. Admite .NET 10 en todas las plataformas principales, lo que beneficia las operaciones de PDF como renderizado, recorte, procesamiento de imágenes y más con un rendimiento mejorado, un mejor uso de la memoria y las funciones más nuevas del lenguaje C#.

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