Questa è una soluzione professionale per comprimere PDF usando C#, F#, VB.NET. Utilizza la nostra API di ottimizzazione PDF per sviluppare software di alto livello indipendente dalla piattaforma per piattaforme .NET e .NET Core. Provalo online gratuitamente!
Questa libreria C# offre agli sviluppatori la possibilità di comprimere i PDF documenti in modo rapido ed efficiente in modo programmatico. Ottieni facilmente output PDF ottimizzato pronto per la stampa, l'archiviazione o la condivisione in rete. È una soluzione di elaborazione di PDF documenti standalone per C# che non richiede l'installazione di software di terze parti.
Il nostro prodotto fornisce agli sviluppatori C# un'API integrata per ridurre le dimensioni dei PDF file. La compressione PDF viene eseguita in due passaggi. Durante il primo passaggio, tutte le pagine del PDF vengono convertite in formato immagine. Il nostro prodotto utilizza algoritmi di compressione delle immagini adattivi e altamente efficienti che consentono agli sviluppatori di ottenere un output PDF compatto mantenendo la qualità ottimale del documento. Al passaggio successivo, la sequenza di immagini viene compressa e combinata per formare il contenuto di un nuovo PDF file ottimizzato.
Compressione PDF semplificata con 'Aspose.Words for .NET'. L'esempio seguente mostra come ridurre le dimensioni di un PDF file in C#:
dotnet add package Aspose.Words
Copia
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)
{
// Imposta la dimensione massima della pagina per evitare il ridimensionamento dell'immagine della pagina corrente.
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)
{
// Spetta allo sviluppatore scegliere la libreria per la compressione delle immagini.
using var image = Image.FromStream(shape.ImageData.ToStream());
// ...
// Comprime l'immagine e riportala alla forma.
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)
{
// Spetta allo sviluppatore scegliere la libreria per la compressione delle immagini.
using var image = Image.Fromstream(shape.ImageData.ToStream());
// ...
// Comprime l'immagine e riportala alla forma.
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)
{
// Spetta allo sviluppatore scegliere la libreria per la compressione delle immagini.
using var image = Image.FromStream(shape.ImageData.ToStream());
// ...
// Comprime l'immagine e riportala alla forma.
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)
{
// Imposta la dimensione massima della pagina per evitare il ridimensionamento dell'immagine della pagina corrente.
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;
}
Ci sono tre opzioni alternative per installare "Aspose.Words per .NET" sul tuo sistema. Scegline uno che corrisponda alle tue esigenze e segui le istruzioni passo passo:
Il nostro prodotto è completamente multipiattaforma e supporta tutte le principali implementazioni .NET:
Poiché il codice .NET non dipende dall'hardware o dal sistema operativo sottostante, ma solo da una macchina virtuale, sei libero di sviluppare qualsiasi tipo di software per Windows, macOS, Android, iOS e Linux. Assicurati solo di aver installato la versione corrispondente di .NET Framework, .NET Core, Windows Azure, Mono o Xamarin.
È consigliabile utilizzare gli ambienti di sviluppo integrati Microsoft Visual Studio, Xamarin e MonoDevelop per creare applicazioni C#, F#, VB.NET.
Per maggiori dettagli fare riferimento alla documentazione del prodotto.
Puoi ottimizzare i file in molti altri formati di file: