El código para comprimir PDF en C#

Biblioteca .NET de alto rendimiento para optimizar el contenido y el tamaño de PDF conservando la calidad original y los datos de referencia

Esta es una solución profesional para comprimir PDF usando C#, F#, VB.NET. Utilice nuestra API de optimización PDF para desarrollar software independiente de plataforma de alto nivel para plataformas .NET y .NET Core. ¡Pruébelo online gratis!

Ver fragmento de código

Comprimir PDF en C#

Esta biblioteca de C# brinda a los desarrolladores la capacidad de comprimir PDF documentos de manera rápida y eficiente mediante programación. Obtenga fácilmente una salida PDF optimizada lista para imprimir, archivar o compartir a través de la red. Es una solución independiente de procesamiento de PDF documentos para C# que no requiere la instalación de ningún software de terceros.

Reducir el tamaño de un PDF usando C#

Nuestro producto proporciona a los desarrolladores de C# una API integrada para reducir el tamaño de los PDF archivos. La compresión de PDF se realiza en dos pasos. Durante la primera pasada, todas las paginas del PDF se convierten a formato de imagen. Nuestro producto utiliza algoritmos de compresión de imagenes adaptables y altamente eficientes que permiten a los desarrolladores obtener una salida PDF compacta manteniendo la calidad óptima del documento. En la siguiente pasada, la secuencia de imagenes se comprime y combina para formar el contenido de un nuevo PDF archivo optimizado.

Compresión de PDF fácil con 'Aspose.Words for .NET'. El siguiente ejemplo demuestra cómo reducir el tamaño de un PDF archivo en C#:

Ejemplo de código en C# para comprimir PDF archivos
Sube un archivo que quieras optimizar/comprimir
Ejecutar código
Seleccione el formato de destino de la lista
50%
using Aspose.Words;
using Aspose.Words.Pdf2Word.FixedFormats;

using var pdfStream = File.OpenRead("Input.pdf");

var renderer = new PdfFixedRenderer();
var pdfReadOptions = new PdfFixedOptions
{
    ImageFormat = FixedImageFormat.Jpeg,
    JpegQuality = 50
};

const double maxPageDimension = 1584;
var pagesStream = renderer.SavePdfAsImages(pdfStream, pdfReadOptions);

var builder = new DocumentBuilder();
for (var i = 0; i < pagesStream.Count; ++i)
{
    // Establecer el tamaño de página máximo para evitar la escala de la imagen de la página actual.
    var pageSetup = builder.PageSetup;
    SetPageSize(pageSetup, maxPageDimension, maxPageDimension);

    var pageImage = builder.InsertImage(pagesStream[i]);

    SetPageSize(pageSetup, pageImage.Width, pageImage.Height);
    pageSetup.TopMargin = 0;
    pageSetup.LeftMargin = 0;
    pageSetup.BottomMargin = 0;
    pageSetup.RightMargin = 0;

    if (i != pagesStream.Count - 1)
        builder.InsertBreak(BreakType.SectionBreakNewPage);
}

var saveOptions = new PdfSaveOptions
{
    CacheBackgroundGraphics = true
};

builder.Document.Save("Output.pdf", saveOptions);

private void SetPageSize(PageSetup pageSetup, double width, double height)
{
    pageSetup.PageWidth = width;
    pageSetup.PageHeight = height;
}
using Aspose.Words; var doc = new Document("Input.pdf"); doc.Cleanup(); var nodes = doc.GetChildNodes(NodeType.Shape, true); foreach (Shape shape in nodes) { if (shape.IsImage) { // del desarrollador elegir la biblioteca para la compresión de imágenes. using var image = Image.FromStream(shape.ImageData.ToStream()); // ... // Comprimir la imagen y volver a configurarla en la forma. shape.ImageData.SetImage("yourCompressedImage"); } } var saveOptions = new PdfSaveOptions { CacheBackgroundGraphics = true }; doc.Save("Output.pdf", saveOptions); using Aspose.Words; var doc = new Document("Input.pdf"); doc.Cleanup(); var nodes = doc.GetChildNodes(NodeType.Shape, true); foreach (Shape shape in nodes) { if (shape.IsImage) { // del desarrollador elegir la biblioteca para la compresión de imágenes. using var image = Image.Fromstream(shape.ImageData.ToStream()); // ... // Comprime la imagen y vuelve a configurarla en la forma. shape.ImageData.SetImage("yourCompressedImage"); } } doc.Save("Output.pdf"); using Aspose.Words; var doc = new Document("Input.pdf"); doc.Cleanup(); var nodes = doc.GetChildNodes(NodeType.Shape, true); foreach (Shape shape in nodes) { if (shape.IsImage) { // del desarrollador elegir la biblioteca para la compresión de imágenes. using var image = Image.FromStream(shape.ImageData.ToStream()); // ... // Comprimir la imagen y volver a configurarla en la forma. shape.ImageData.SetImage("yourCompressedImage"); } } var saveOptions = new OoxmlSaveOptions { CompressionLevel = CompressionLevel.Maximum }; doc.Save("Output.pdf", saveOptions); using Aspose.Words; var doc = new Document(); var builder = new DocumentBuilder(doc); var shape = builder.InsertImage("Input.pdf"); // Actualice la configuración de la página para recortar el documento para que se ajuste al tamaño de la imagen. var pageSetup = builder.PageSetup; pageSetup.PageWidth = shape.Width; pageSetup.PageHeight = shape.Height; pageSetup.TopMargin = 0; pageSetup.LeftMargin = 0; pageSetup.BottomMargin = 0; pageSetup.RightMargin = 0; var saveOptions = new ImageSaveOptions(SaveFormat.Pdf) { }; doc.Save("Output.pdf", saveOptions); using Aspose.Words; using Aspose.Words.Pdf2Word.FixedFormats; using var pdfStream = File.OpenRead("Input.pdf"); var renderer = new PdfFixedRenderer(); var pdfReadOptions = new PdfFixedOptions { ImageFormat = FixedImageFormat.Jpeg, JpegQuality = 50 }; const double maxPageDimension = 1584; var pagesStream = renderer.SavePdfAsImages(pdfStream, pdfReadOptions); var builder = new DocumentBuilder(); for (var i = 0; i < pagesStream.Count; ++i) { // Establecer el tamaño de página máximo para evitar la escala de la imagen de la página actual. var pageSetup = builder.PageSetup; SetPageSize(pageSetup, maxPageDimension, maxPageDimension); var pageImage = builder.InsertImage(pagesStream[i]); SetPageSize(pageSetup, pageImage.Width, pageImage.Height); pageSetup.TopMargin = 0; pageSetup.LeftMargin = 0; pageSetup.BottomMargin = 0; pageSetup.RightMargin = 0; if (i != pagesStream.Count - 1) builder.InsertBreak(BreakType.SectionBreakNewPage); } var saveOptions = new PdfSaveOptions { CacheBackgroundGraphics = true }; builder.Document.Save("Output.pdf", saveOptions); private void SetPageSize(PageSetup pageSetup, double width, double height) { pageSetup.PageWidth = width; pageSetup.PageHeight = height; }
Ejecutar código

Como comprimir PDF C#

  1. Instale Aspose.Words for .NET.
  2. Agregue una referencia de biblioteca (importe la biblioteca) a su proyecto C#.
  3. Abra el archivo fuente PDF en C#.
  4. Comprime PDF sin perder calidad.
  5. Llame al método Document.Cleanup(). El código resultante puede variar según el formato del archivo de salida.
  6. Obtenga el resultado comprimido como un PDF archivo.

C# biblioteca para optimizar y comprimir PDF archivos

Hay tres opciones alternativas para instalar "Aspose.Words para .NET" en su sistema. Elija uno que se adapte a sus necesidades y siga las instrucciones paso a paso:

Requisitos del sistema

Nuestro producto es totalmente multiplataforma y admite todas las principales implementaciones de .NET:

  • .NET ≥ 5.0
  • .NET Core ≥ 2.0
  • .NET Standard ≥ 2.0
  • .NET Framework ≥ 3.5
  • MonoMac
  • MonoAndroid
  • Xamarin

En la medida en que el código .NET no depende del hardware o sistema operativo subyacente, sino sólo de una máquina virtual, usted es libre de desarrollar cualquier tipo de software para Windows, macOS, Android, iOS y Linux. Solo asegúrate de haber instalado la versión correspondiente de .NET Framework, .NET Core, Windows Azure, Mono o Xamarin.

Recomendamos utilizar los entornos de desarrollo integrados Microsoft Visual Studio, Xamarin y MonoDevelop para crear aplicaciones C#, F#, VB.NET.

Para obtener más detalles, consulte la documentación del producto.

Otras optimizaciones de formato de archivo compatibles

Puede optimizar archivos en muchos otros formatos de archivo:

5%

Suscríbase a las actualizaciones de productos de Aspose

Reciba boletines y ofertas mensuales directamente en su buzón.

© Aspose Pty Ltd 2001-2024. Reservados todos los derechos.