Kod untuk memampatkan PDF dalam C#

Pustaka .NET berprestasi tinggi untuk mengoptimumkan PDF kandungan dan saiz mengekalkan kualiti asal dan data garis dasar

Ini ialah penyelesaian profesional untuk memampatkan PDF menggunakan C#, F#, VB.NET. Gunakan API pengoptimuman PDF kami untuk membangunkan perisian bebas platform peringkat tinggi untuk platform .NET dan .NET Core. Cuba dalam talian secara percuma!

Lihat coretan kod

Mampatkan PDF dalam C#

Pustaka C# ini menyediakan pembangun dengan keupayaan untuk memampatkan PDF dokumen secara cepat dan cekap secara pemrograman. Dapatkan output PDF yang dioptimumkan dengan mudah untuk dicetak, diarkibkan atau perkongsian melalui rangkaian. Ia adalah penyelesaian pemprosesan PDF dokumen kendiri untuk C# yang tidak memerlukan sebarang perisian pihak ketiga untuk dipasang.

Kurangkan saiz PDF menggunakan C#

Produk kami menyediakan pembangun C# dengan API bersepadu untuk mengurangkan saiz PDF fail. Pemampatan PDF dilakukan dalam dua laluan. Semasa pas pertama, semua halaman PDF ditukar kepada format imej. Produk kami menggunakan algoritma pemampatan imej yang adaptif dan sangat cekap yang membolehkan pembangun mendapatkan output PDF padat sambil mengekalkan kualiti optimum dokumen. Pada laluan seterusnya, jujukan imej dimampatkan dan digabungkan untuk membentuk kandungan PDF fail baharu yang dioptimumkan.

Pemampatan PDF dipermudahkan dengan 'Aspose.Words for .NET'. Contoh berikut menunjukkan cara mengurangkan saiz PDF fail dalam C#:

Contoh kod dalam C# untuk memampatkan PDF fail
Muat naik fail yang anda mahu optimumkan/mampatkan
Jalankan kod
Pilih format sasaran daripada senarai
50%
dotnet add package Aspose.Words
Salinan
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)
{
    // Tetapkan saiz halaman maksimum untuk mengelakkan penskalaan imej halaman semasa.
    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) { // kepada pembangun untuk memilih perpustakaan untuk pemampatan imej. using var image = Image.FromStream(shape.ImageData.ToStream()); // ... // Mampatkan imej dan tetapkannya semula kepada bentuk. 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) { // kepada pembangun untuk memilih perpustakaan untuk pemampatan imej. using var image = Image.Fromstream(shape.ImageData.ToStream()); // ... // Mampatkan imej dan tetapkannya semula kepada bentuk. 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) { // kepada pembangun untuk memilih perpustakaan untuk pemampatan imej. using var image = Image.FromStream(shape.ImageData.ToStream()); // ... // Mampatkan imej dan tetapkannya semula kepada bentuk. 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) { // Tetapkan saiz halaman maksimum untuk mengelakkan penskalaan imej halaman semasa. 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; }
Jalankan kod

Bagaimana untuk memampatkan PDF dalam C#

  1. Pasang Aspose.Words for .NET.
  2. Tambahkan rujukan perpustakaan (import pustaka) ke projek C# anda.
  3. Buka PDF fail sumber dalam C#.
  4. Mampat PDF tanpa kehilangan kualiti.
  5. Panggil kaedah Document.Cleanup(). Kod yang terhasil mungkin berbeza-beza bergantung pada format fail output.
  6. Dapatkan hasil termampat sebagai PDF fail.

Pustaka C# untuk mengoptimumkan dan memampatkan PDF fail

Terdapat tiga pilihan alternatif untuk memasang "Aspose.Words untuk .NET" sistem anda. Sila pilih satu yang menyerupai keperluan anda dan ikut arahan langkah demi langkah:

Keperluan Sistem

Produk kami adalah merentas platform sepenuhnya dan menyokong semua pelaksanaan .NET utama:

  • .NET ≥ 5.0
  • .NET Core ≥ 2.0
  • .NET Standard ≥ 2.0
  • .NET Framework ≥ 3.5
  • MonoMac
  • MonoAndroid
  • Xamarin

Setakat kod .NET tidak bergantung pada perkakasan atau sistem pengendalian asas, tetapi hanya pada Mesin Maya, anda bebas untuk membangunkan sebarang jenis perisian untuk Windows, macOS, Android, iOS dan Linux. Cuma pastikan anda telah memasang versi .NET Framework, .NET Core, Windows Azure, Mono atau Xamarin yang sepadan.

Kami mengesyorkan menggunakan Microsoft Visual Studio, Xamarin dan persekitaran pembangunan bersepadu MonoDevelop untuk mencipta aplikasi C#, F#, VB.NET.

Untuk maklumat lanjut sila rujuk Dokumentasi Produk.

Pengoptimuman format fail lain yang disokong

Anda boleh mengoptimumkan fail dalam banyak format fail lain:

5%

Langgan Kemas Kini Produk Aspose

Dapatkan surat berita bulanan dan tawaran yang dihantar terus ke peti mel anda.

© Aspose Pty Ltd 2001-2024. Hak cipta terpelihara.