Це професійне рішення для стиснення 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.
Для отримання додаткової інформації зверніться до документації продукту.
Ви можете оптимізувати файли в багатьох інших форматах: