Jest to profesjonalne rozwiązanie do kompresji PDF przy użyciu C#, F#, VB.NET. Skorzystaj z naszego PDF optymalizacyjnego interfejsu API, aby tworzyć wysokopoziomowe, niezależne od platformy oprogramowanie dla .NET i .NET Core. Wypróbuj online za darmo!
Ta C# biblioteka zapewnia programistom możliwość szybkiego i wydajnego programowego kompresowania PDF dokumentów. Łatwo uzyskaj zoptymalizowany PDF plik gotowy do drukowania, archiwizacji lub udostępniania w sieci. Jest to samodzielne rozwiązanie do przetwarzania PDF dokumentów dla języka C#, które nie wymaga instalowania żadnego oprogramowania innych firm.
Nasz produkt zapewnia programistom C# zintegrowany interfejs API w celu zmniejszenia rozmiaru PDF plików. Kompresja PDF odbywa się w dwóch przejściach. Podczas pierwszego przejścia wszystkie strony PDF pliku są konwertowane do formatu obrazu. Nasz produkt wykorzystuje adaptacyjne i wysoce wydajne algorytmy kompresji obrazu, które umożliwiają programistom uzyskanie kompaktowych PDF plików przy zachowaniu optymalnej jakości dokumentu. W następnym przebiegu sekwencja obrazów jest kompresowana i łączona w celu utworzenia zawartości nowego, zoptymalizowanego PDF pliku.
Kompresja PDF jest łatwa dzięki 'Aspose.Words for .NET'. Poniższy przykład pokazuje, jak zmniejszyć rozmiar PDF pliku w C#:
dotnet add package Aspose.Words
Kopiuj
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)
{
// Ustaw maksymalny rozmiar strony, aby uniknąć skalowania obrazu bieżącej strony.
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)
{
// Od programisty zależy wybór biblioteki do kompresji obrazu.
using var image = Image.FromStream(shape.ImageData.ToStream());
// ...
// Skompresuj obraz i ustaw go z powrotem do kształtu.
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)
{
// Od programisty zależy wybór biblioteki do kompresji obrazu.
using var image = Image.Fromstream(shape.ImageData.ToStream());
// ...
// Skompresuj obraz i ustaw go z powrotem do kształtu.
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)
{
// Od programisty zależy wybór biblioteki do kompresji obrazu.
using var image = Image.FromStream(shape.ImageData.ToStream());
// ...
// Skompresuj obraz i ustaw go z powrotem do kształtu.
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)
{
// Ustaw maksymalny rozmiar strony, aby uniknąć skalowania obrazu bieżącej strony.
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;
}
Istnieją trzy alternatywne opcje instalacji "Aspose.Words for .NET" w systemie. Wybierz taki, który odpowiada Twoim potrzebom i postępuj zgodnie z instrukcjami krok po kroku:
Nasz produkt jest w pełni wieloplatformowy i obsługuje wszystkie główne implementacje .NET:
O ile kod .NET nie jest zależny od sprzętu lub systemu operacyjnego, ale tylko od maszyny wirtualnej, możesz swobodnie tworzyć dowolne oprogramowanie dla systemów Windows, macOS, Android, iOS i Linux. Upewnij się tylko, że masz zainstalowaną odpowiednią wersję .NET Framework, .NET Core, Windows Azure, Mono lub Xamarin.
Do tworzenia aplikacji C#, F#, VB.NET zalecamy używanie zintegrowanych środowisk programistycznych Microsoft Visual Studio, Xamarin i MonoDevelop.
Aby uzyskać więcej informacji, zapoznaj się z dokumentacją produktu.
Możesz optymalizować pliki w wielu innych formatach plików: