Код для стиснення 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

Отримуйте щомісячні інформаційні бюлетені та пропозиції безпосередньо на вашу поштову скриньку.

© Aspose Pty Ltd 2001-2024. Всі права захищені.