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!
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.
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#:
dotnet add package Aspose.Words
Copiar
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");
var saveOptions = new ImageSaveOptions(SaveFormat.Pdf)
{
};
shape.GetShapeRenderer().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;
}
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:
Nuestro producto es totalmente multiplataforma y admite todas las principales implementaciones de .NET:
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.
Puede optimizar archivos en muchos otros formatos de archivo: