Код для сжатия PDF на C#

Высокопроизводительная .NET библиотека для оптимизации содержимого и размера PDF с сохранением исходного качества и исходных данных.

Это профессиональное решение для сжатия PDF с использованием C#, F#, VB.NET. Используйте наш API оптимизации PDF для разработки высокоуровневого, независимого от платформы программного обеспечения для .NET и .NET Core. Попробуйте онлайн бесплатно!

Посмотреть фрагмент кода

Сжать PDF на C#

Эта C# библиотека предоставляет разработчикам возможность быстро и эффективно программно сжимать PDF документы. С легкостью получайте оптимизированный PDF файл, готовый к печати, архивированию или совместному использованию по сети. Это автономное решение для обработки PDF документов для C#, которое не требует установки какого-либо стороннего программного обеспечения.

Уменьшить размер PDF с помощью C#

Наш продукт предоставляет C# разработчикам интегрированный API для уменьшения размера PDF файлов. Сжатие PDF выполняется в два прохода. Во время первого прохода все страницы PDF конвертируются в формат изображения. В нашем продукте используются адаптивные и высокоэффективные алгоритмы сжатия изображений, которые позволяют разработчикам получать компактные PDF файлы при сохранении оптимального качества документа. На следующем проходе последовательность изображений сжимается и объединяется для формирования содержимого нового оптимизированного PDF файла.

Сжатие PDF выполняется просто благодаря 'Aspose.Words for .NET'. В следующем примере показано, как уменьшить размер PDF файла с помощью C#:

Пример кода на C# для сжатия PDF файлов
Загрузите файл, который хотите оптимизировать/сжать
Выполнить код
Выберите целевой формат из списка
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)
{
    // Установите максимальный размер страницы, чтобы избежать масштабирования изображения текущей страницы.
    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) { // Разработчик должен выбрать библиотеку для сжатия изображений. using var image = Image.FromStream(shape.ImageData.ToStream()); // ... // Сжать изображение и вернуть его к форме. 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) { // Разработчик должен выбрать библиотеку для сжатия изображений. using var image = Image.Fromstream(shape.ImageData.ToStream()); // ... // Сжать изображение и вернуть его к форме. 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) { // Разработчик должен выбрать библиотеку для сжатия изображений. using var image = Image.FromStream(shape.ImageData.ToStream()); // ... // Сжать изображение и вернуть его к форме. 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 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) { // Установите максимальный размер страницы, чтобы избежать масштабирования изображения текущей страницы. 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; }
Выполнить код

Как сжать PDF C#

  1. Установите Aspose.Words for .NET.
  2. Добавьте ссылку на библиотеку (импортируйте библиотеку) в свой C# проект.
  3. Откройте исходный PDF файл на C#.
  4. Сжать PDF без потери качества.
  5. Вызовите метод Document.Cleanup(). Итоговый код может варьироваться в зависимости от формата выходного файла.
  6. Получите сжатый результат в виде PDF файла.

C# библиотека для оптимизации и сжатия PDF файлов

Есть три альтернативных варианта установки "Aspose.Words для .NET" в вашу систему. Пожалуйста, выберите тот, который соответствует вашим потребностям, и следуйте пошаговым инструкциям:

Системные Требования

Наш продукт полностью кроссплатформен и поддерживает все основные реализации .NET:

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

Поскольку код .NET не зависит от базового оборудования или операционной системы, а зависит только от виртуальной машины, вы можете разрабатывать любое программное обеспечение для Windows, macOS, Android, iOS и Linux. Просто убедитесь, что у вас установлена соответствующая версия .NET Framework, .NET Core, Windows Azure, Mono или Xamarin.

Мы рекомендуем использовать интегрированные среды разработки Microsoft Visual Studio, Xamarin и MonoDevelop для создания приложений C#, F#, VB.NET.

Для получения более подробной информации обратитесь к документации по продукту.

Оптимизация других поддерживаемых форматов файлов

Вы можете оптимизировать файлы во многих других форматах файлов:

5%

Подпишитесь на обновления продукта Aspose

Получайте ежемесячные информационные бюллетени и предложения, доставляемые прямо на ваш почтовый ящик.