Это профессиональное решение для сжатия PDF с использованием C#, F#, VB.NET. Используйте наш API оптимизации PDF для разработки высокоуровневого, независимого от платформы программного обеспечения для .NET и .NET Core. Попробуйте онлайн бесплатно!
Эта C# библиотека предоставляет разработчикам возможность быстро и эффективно программно сжимать PDF документы. С легкостью получайте оптимизированный PDF файл, готовый к печати, архивированию или совместному использованию по сети. Это автономное решение для обработки PDF документов для C#, которое не требует установки какого-либо стороннего программного обеспечения.
Наш продукт предоставляет C# разработчикам интегрированный API для уменьшения размера PDF файлов. Сжатие PDF выполняется в два прохода. Во время первого прохода все страницы PDF конвертируются в формат изображения. В нашем продукте используются адаптивные и высокоэффективные алгоритмы сжатия изображений, которые позволяют разработчикам получать компактные PDF файлы при сохранении оптимального качества документа. На следующем проходе последовательность изображений сжимается и объединяется для формирования содержимого нового оптимизированного PDF файла.
Сжатие PDF выполняется просто благодаря 'Aspose.Words for .NET'. В следующем примере показано, как уменьшить размер PDF файла с помощью C#:
dotnet add package Aspose.Words
Копировать
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 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)
{
// Установите максимальный размер страницы, чтобы избежать масштабирования изображения текущей страницы.
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;
}
Есть три альтернативных варианта установки "Aspose.Words для .NET" в вашу систему. Пожалуйста, выберите тот, который соответствует вашим потребностям, и следуйте пошаговым инструкциям:
Наш продукт полностью кроссплатформен и поддерживает все основные реализации .NET:
Поскольку код .NET не зависит от базового оборудования или операционной системы, а зависит только от виртуальной машины, вы можете разрабатывать любое программное обеспечение для Windows, macOS, Android, iOS и Linux. Просто убедитесь, что у вас установлена соответствующая версия .NET Framework, .NET Core, Windows Azure, Mono или Xamarin.
Мы рекомендуем использовать интегрированные среды разработки Microsoft Visual Studio, Xamarin и MonoDevelop для создания приложений C#, F#, VB.NET.
Для получения более подробной информации обратитесь к документации по продукту.
Вы можете оптимизировать файлы во многих других форматах файлов: