Кодът за компресиране на PDF в C#

Високопроизводителна .NET библиотека за оптимизиране на съдържанието и размера на PDF, запазвайки оригиналното качество и базовите данни

Това е професионално решение за компресиране на PDF с помощта на C#, F#, VB.NET. Използвайте нашия PDF API за оптимизация, за да разработите софтуер на високо ниво, независим от платформата за платформи .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

  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

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

© Aspose Pty Ltd 2001-2024. Всички права запазени.