Tämä on ammattimainen ratkaisu PDF:n pakkaamiseen käyttämällä C#, F#, VB.NET. Käytä PDF optimointisovellusliittymäämme korkean tason, alustasta riippumattomien ohjelmistojen kehittämiseen .NET ja .NET Core -alustoille. Kokeile verkossa ilmaiseksi!
Tämä C# kirjasto tarjoaa kehittäjille mahdollisuuden pakata PDF dokumentteja ohjelmallisesti nopeasti ja tehokkaasti. Saat optimoidun PDF tulosteen helposti valmiiksi tulostamista, arkistointia tai jakamista verkon kautta. Se on itsenäinen PDF dokumenttien käsittelyratkaisu C#, joka ei vaadi kolmannen osapuolen ohjelmiston asentamista.
Tuotteemme tarjoaa C# kehittäjille integroidun API PDF tiedostojen koon pienentämiseksi. PDF pakkaus suoritetaan kahdessa ajossa. Ensimmäisellä kerralla kaikki PDF tiedoston sivut muunnetaan kuvamuotoon. Tuotteemme käyttää mukautuvia ja erittäin tehokkaita kuvanpakkausalgoritmeja, joiden avulla kehittäjät voivat saada kompaktin PDF tulosteen säilyttäen samalla asiakirjan optimaalisen laadun. Seuraavalla kerralla kuvasarja pakataan ja yhdistetään uuden, optimoidun PDF tiedoston sisällön muodostamiseksi.
PDF pakkaus on tehty helpoksi 'Aspose.Words for .NET'. Seuraava esimerkki osoittaa, kuinka PDF tiedoston kokoa pienennetään C#:
dotnet add package Aspose.Words
Kopio
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)
{
// Aseta sivun enimmäiskoko välttääksesi nykyisen sivun kuvan skaalaus.
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)
{
// Kehittäjä voi valita kuvan pakkauskirjaston.
using var image = Image.FromStream(shape.ImageData.ToStream());
// ...
// Pakkaa kuva ja aseta se takaisin muotoon.
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)
{
// Kehittäjä voi valita kuvan pakkauskirjaston.
using var image = Image.Fromstream(shape.ImageData.ToStream());
// ...
// Pakkaa kuva ja aseta se takaisin muotoon.
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)
{
// Kehittäjä voi valita kuvan pakkauskirjaston.
using var image = Image.FromStream(shape.ImageData.ToStream());
// ...
// Pakkaa kuva ja aseta se takaisin muotoon.
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)
{
// Aseta sivun enimmäiskoko välttääksesi nykyisen sivun kuvan skaalaus.
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 for .NET asentamiseen järjestelmään on kolme vaihtoehtoa. Valitse tarpeitasi vastaava ja seuraa vaiheittaisia ohjeita:
Tuotteemme on täysin monikäyttöinen ja tukee kaikkia tärkeimpiä .NET-toteutuksia:
Sikäli kuin .NET-koodi ei riipu taustalla olevasta laitteistosta tai käyttöjärjestelmästä, vaan vain virtuaalikoneesta, voit vapaasti kehittää kaikenlaisia ohjelmistoja Windowsille, macOS:lle, Androidille, iOS:lle ja Linuxille. Varmista vain, että olet asentanut vastaavan version .NET Framework, .NET Core, Windows Azure, Mono tai Xamarin.
Suosittelemme Microsoft Visual Studion, Xamarinin ja MonoDevelopin integroitujen kehitysympäristöjen käyttöä C#, F#, VB.NET sovellusten luomiseen.
Katso lisätietoja tuotedokumentaatiosta.
Voit optimoida tiedostoja monissa muissa tiedostomuodoissa: