Toto je profesionální řešení pro kompresi PDF pomocí C#, F#, VB.NET. Použijte naše optimalizační rozhraní API PDF k vývoji softwaru na vysoké úrovni, nezávislého na platformě pro .NET a .NET Core. Vyzkoušejte to online zdarma!
Tato knihovna C# poskytuje vývojářům možnost rychle a efektivně programově komprimovat PDF dokumenty. Získejte snadno optimalizovaný výstup PDF připravený pro tisk, archivaci nebo sdílení po síti. Jedná se o samostatné řešení pro zpracování PDF dokumentů pro C#, které nevyžaduje instalaci žádného softwaru třetích stran.
Náš produkt poskytuje vývojářům C# integrované rozhraní API pro snížení velikosti PDF souborů. Komprese PDF se provádí ve dvou průchodech. Během prvního průchodu jsou všechny stránky PDF převedeny do obrazového formátu. Náš produkt využívá adaptivní a vysoce účinné algoritmy komprese obrázků, které umožňují vývojářům získat kompaktní výstup PDF při zachování optimální kvality dokumentu. Při dalším průchodu je sekvence obrázků zkomprimována a zkombinována tak, aby vytvořila obsah nového optimalizovaného PDF souboru.
Komprese PDF je snadná s 'Aspose.Words for .NET'. Následující příklad ukazuje, jak zmenšit velikost PDF souboru v C#:
dotnet add package Aspose.Words
Kopírovat
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)
{
// Nastavení maximální velikosti stránky, aby se předešlo změně měřítka aktuální stránky.
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)
{
// Je na vývojáři, aby si vybral knihovnu pro kompresi obrázků.
using var image = Image.FromStream(shape.ImageData.ToStream());
// ...
// Komprimujte obrázek a nastavte jej zpět do tvaru.
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)
{
// Je na vývojáři, aby zvolil knihovnu pro kompresi obrázků.
using var image = Image.Fromstream(shape.ImageData.ToStream());
// ...
// Komprimujte obrázek a nastavte jej zpět do tvaru.
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)
{
// Je na vývojáři, aby si vybral knihovnu pro kompresi obrázků.
using var image = Image.FromStream(shape.ImageData.ToStream());
// ...
// Komprimujte obrázek a nastavte jej zpět do tvaru.
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)
{
// Nastavení maximální velikosti stránky, aby se předešlo změně měřítka aktuální stránky.
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;
}
Existují tři alternativní možnosti instalace "Aspose.Words for .NET" do vašeho systému. Vyberte si prosím ten, který odpovídá vašim potřebám, a postupujte podle pokynů krok za krokem:
Náš produkt je plně multiplatformní a podporuje všechny hlavní implementace .NET:
Pokud kód .NET nezávisí na základním hardwaru nebo operačním systému, ale pouze na virtuálním počítači, můžete vyvíjet jakýkoli druh softwaru pro Windows, macOS, Android, iOS a Linux. Jen se ujistěte, že máte nainstalovanou odpovídající verzi .NET Framework, .NET Core, Windows Azure, Mono nebo Xamarin.
K vytváření aplikací C#, F#, VB.NET doporučujeme používat integrovaná vývojová prostředí Microsoft Visual Studio, Xamarin a MonoDevelop.
Další podrobnosti naleznete v dokumentaci k produktu.
Můžete optimalizovat soubory v mnoha dalších formátech souborů: