C# ile PDF'ler Nasıl Sıkıştırılır

IronPDF ile C#'ta PDF'leri Nasıl Sıkıştırırım

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF, C#'ta gömülü görüntüleri sıkıştırarak ve PDF ağaç yapısını optimize ederek, dosya boyutlarını azaltan güçlü PDF sıkıştırma özellikleri sunar. Bu, belgeleri depolamak ve paylaşmak için daha yönetilebilir kılar ve kaliteyi korur.

PDF sıkıştırma, PDF belgelerinin dosya boyutunu depolama, paylaşım ve iletim için daha yönetilebilir hale getirir. HTML'den oluşturulan PDF'lerle veya mevcut PDF dosyalarıyla çalışıyor olsanız da, sıkıştırma belge işleme optimizasyonu için gereklidir.

Görüntüler genellikle PDF dosya boyutlarının çoğunluğunu tüketir. IronPDF, gömülü görüntü boyutlarını azaltan ve tablo yoğun PDF'lerde sıklıkla bulunan ağaç yapısını optimize eden sıkıştırma özellikleri sunar. Bu teknikler, URL'den PDF'ye dönüşümler ve HTML dosya dönüşümleri dâhil olmak üzere çeşitli yöntemlerle oluşturulan PDF'lerle sorunsuz çalışır.

Hızlı Başlangıç: IronPDF ile PDF Dosyalarını Sıkıştırın

IronPDF'in sıkıştırma araçlarını kullanarak PDF dosya boyutlarını azaltın. PDF'nizi PdfDocument.FromFile ile yükleyin ve CompressAndSaveAs komutunu çağırarak optimize edilmiş PDF'nizi tek adımda sıkıştırın ve kaydedin. Bu işlem, kaliteyi korurken dosya boyutunda önemli bir azalma sağlar.

  1. IronPDF aşağıdaki NuGet Paket Yöneticisi ile yükleyin

    PM > Install-Package IronPdf
  2. Bu kod parçacığını kopyalayın ve çalıştırın.

    PdfDocument.FromFile("input.pdf").CompressAndSaveAs("compressed.pdf", 40);
  3. Canlı ortamınızda test için dağıtım yapın

    Ücretsiz deneme ile bugün projenizde IronPDF kullanmaya başlayın

    arrow pointer


CompressImages, CompressStructTree ve Compress(CompressionOptions) gibi önceki sıkıştırma yöntemleri artık kullanılmamaktadır.

PDF'lerde Görselleri Nasıl Sıkıştırırım?

JPEG sıkıştırma kalitesi, 0 (maksimum sıkıştırma) ile 100 (minimal kayıp) arasında değerler kabul eder ve alttaki motor, değerin nasıl uygulanacağını belirler. Bu seviyeleri anlamak, gömülü görüntüler içeren PDF'ler ile çalışırken veya yazı tiplerini ve grafiklerini yönetmek gerektiğinde yardımcı olur.

  • %90 ve üzeri: yüksek kalite
  • %80-%90: orta kalite
  • %70-%80: düşük kalite

Kalite ve dosya boyutu arasında denge sağlamak için çeşitli değerler deneyin. Kalite azalması, girdi görüntü türüne bağlı olarak değişir—bazı görüntüler diğerlerine göre daha belirgin bulanıklık gösterir. Bu, özellikle Azure Blob Storage'daki görüntülerle çalışırken veya özel filigranlı PDF'ler oluştururken önemlidir.

:path=/static-assets/pdf/content-code-examples/how-to/pdf-compression-image.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

PdfDocument pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");

// Compress images in the PDF
pdf.CompressAndSaveAs("compressed.pdf", 40);
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page")

' Compress images in the PDF
pdf.CompressAndSaveAs("compressed.pdf", 40)
$vbLabelText   $csharpLabel

Görüntü Sıkıştırmasından Hangi Sonuçları Bekleyebilirim?

%39,24 oranında azaltıldı!

compressed.pdf (449 KB) ve nonCompress.pdf (739 KB) arasında sıkıştırma sonuçlarını gösteren dosya karşılaştırması

Kalite Parametresi Nasıl Çalışır?

CompressAndSaveAs içindeki quality parametresi, gömülü her resme uygulanan JPEG kodlama kalitesini kontrol eder. 0 (maksimum sıkıştırma, en düşük kalite) ile 100 (minimum sıkıştırma, en yüksek kalite) arasında bir tamsayı veya null değerini girerek görüntü sıkıştırmasını tamamen atlayabilirsiniz.

IronPDF, sıkıştırma sırasında görüntüleri otomatik olarak yeniden kodlar ve ölçeklendirir, bu nedenle ek seçenekler gerekmez. Daha düşük değerler daha küçük dosyalar üretir ancak görünür artefaktlar oluşturabilir — içeriğiniz için doğru dengeyi bulmak için deney yapın.


PDF Ağaç Yapısını Nasıl Sıkıştırırım?

Bu özellik, Chrome Engine tarafından oluşturulan ağaç yapısını kaldırarak PDF boyutunu küçültür. Etkinleştirmek için removeStructureTree: true'yi CompressAndSaveAs'nin üçüncü parametresi olarak geçirin. Chrome Motoru tarafından oluşturulan ve kapsamlı tablo verileri içeren PDF'lerle en etkili şekilde çalışır. Bazı oluşturma motorları, bu yapıyı içermeyen PDF'ler üretir; bu durumda özellik etkisizdir. Bu teknik, karmaşık düzenlerle çalışırken veya aynı çok sayıda PDF'yi birleştirirken tekrarlayan yapısal unsurlara sahip belgelerde değerlidir.

Ağaç yapısının çıkarılması, metin vurgulama ve çıkarma etkinliğini etkileyebilir. Compression uygulandığında bu takası dikkate alın, özellikle kullanıcılar sıkıştırılmış PDF'lerden metin ve görüntü çıkarmaya ihtiyaç duyuyorsa.

Test CompressAndSaveAs with tree structure removal using this PDF with table data.

:path=/static-assets/pdf/content-code-examples/how-to/pdf-compression-tree-structure.cs
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("table.pdf");

// Compress tree structure in PDF
pdf.CompressAndSaveAs("compressedTable.pdf", null, true);
Imports IronPdf

Dim pdf As PdfDocument = PdfDocument.FromFile("table.pdf")

' Compress tree structure in PDF
pdf.CompressAndSaveAs("compressedTable.pdf", Nothing, True)
$vbLabelText   $csharpLabel

Ağaç Yapısı Sıkıştırması Ne Kadar Dosya Boyutu Azaltabilir?

%67,90 oranında azaltıldı! Bu yüzde, daha büyük tablo PDF'leriyle artar.

compressedTable.pdf (52 KB) ve table.pdf (162 KB) arasında sıkıştırma sonuçlarını gösteren dosya karşılaştırması

Her İki Sıkıştırma Yöntemini Birlikte Nasıl Uygularım?

CompressAndSaveAs, tek bir çağrıda hem görüntü hem de ağaç yapısı sıkıştırmasını gerçekleştirir — bir quality değeri geçirin ve removeStructureTree'yi true olarak ayarlayın. Bu birleşik yaklaşım, imgeler ve yapılandırılmış veriler içeren karmaşık PDF'ler için özellikle etkilidir, örneğin grafikli raporlar veya gömülü tablolar ve grafikler içeren belgeler.

:path=/static-assets/pdf/content-code-examples/how-to/pdf-compression-compress.cs
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

// Configure compression with automatic optimization
pdf.CompressAndSaveAs("compressed.pdf", 80, true);
Imports IronPdf

Dim pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")

' Configure compression with automatic optimization
pdf.CompressAndSaveAs("compressed.pdf", 80, True)
$vbLabelText   $csharpLabel

CompressAndSaveAs hangi parametreleri kabul eder?

  • outputPath (dize): Sıkıştırılmış PDF'nin kaydedileceği dosya yolu.

  • quality (int?, 0–100): Her gömülü resme uygulanan JPEG kalitesi. Daha düşük değerler daha küçük dosyalar üretir. Görüntü sıkıştırmasını tamamen atlamak için null değerini geçirin.

  • removeStructureTree (bool, varsayılan false): true olduğunda, dosya boyutunu daha da azaltmak için PDF yapı ağacını temizler. Tablolar içeren HTML kaynaklı PDF'ler için en etkilidir.

Sıkıştırma uygularken kullanıcınızı göz önünde bulundurun. Arşivleme amaçları kaliteyi dosya boyutuna tercih edebilir. Web dağıtımı daha küçük dosyalar gerektirir. PDF/A uyumlu belgeler veya standart PDF'lerle çalışıyorsanız ayarları özelleştirin.

Diskte Kaydetmeden PDF'leri Nasıl Sıkıştırırım?

API yanıtları, bulut işlevleri veya e-posta ekleri gibi birçok gerçek dünyadaki senaryoda, sıkıştırılmış bir PDF'yi diske yazmak gereksiz veya kullanışsızdır.

CompressPdfToBytes, sıkıştırılmış PDF'yi bir bayt dizisi olarak döndürür ve çıktının nasıl depolanacağı veya iletileceği üzerinde tam kontrol sağlar. Hem CompressPdfToBytes hem de CompressPdfToStream, sıkıştırmanın nasıl gerçekleştirileceğini kontrol eden isteğe bağlı bir CompressionMode parametresini kabul eder.

:path=/static-assets/pdf/content-code-examples/how-to/pdf-compression-to-bytes.cs
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

// Compress and return as byte array
byte[] compressedBytes = pdf.CompressPdfToBytes();

File.WriteAllBytes("compressed.pdf", compressedBytes);
Imports IronPdf

Dim pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")

' Compress and return as byte array
Dim compressedBytes As Byte() = pdf.CompressPdfToBytes()

File.WriteAllBytes("compressed.pdf", compressedBytes)
$vbLabelText   $csharpLabel

CompressionMode Hangi Seçenekler Mevcuttur?

Farklı dağıtım ortamlarının disk erişimi ve performans çevresinde farklı kısıtlamaları vardır. CompressionMode enum, doğru dengeyi seçmenizi sağlar.

  • Automatic (varsayılan): Sistem özelliklerine göre en uygun sıkıştırma yöntemini seçer. Önce HighQuality dener ve disk erişimi kısıtlıysa FastMemory'e geri döner.

  • FastMemory: Disk I/O'su olmadan tamamen bellekte sıkıştırma gerçekleştirir. En hızlı seçenek, ancak yeniden örnekleme veya yeniden çerçeveleme uygulamaz, daha büyük çıkış dosyalarına yol açar.

  • HighQuality: Geçici disk erişimini kullanarak maksimum sıkıştırma uygular. Tam görüntü optimizasyonuyla en küçük çıkış dosyalarını üretir. Sistem geçici dizinine yazma izinleri gerektirir.

Bayt dizisi yerine Stream'ye ihtiyacınız varsa, CompressPdfToStream'yi kullanın. Bu, doğrudan bir HTTP yanıtına, bulut depolama yüklemesine veya bir akış tabanlı iş akışına boru döşerken faydalıdır.

:path=/static-assets/pdf/content-code-examples/how-to/pdf-compression-to-stream.cs
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

// Compress and return as Stream
using var compressedStream = pdf.CompressPdfToStream();

File.WriteAllBytes("compressed.pdf", compressedStream.ToArray());
Imports IronPdf

Dim pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")

' Compress and return as Stream
Using compressedStream = pdf.CompressPdfToStream()
    File.WriteAllBytes("compressed.pdf", compressedStream.ToArray())
End Using
$vbLabelText   $csharpLabel

CompressPdfToBytes ve CompressPdfToStream artık Java, Node.js ve Python dahil olmak üzere tüm IronPDF platformlarında kullanılabilir.

Başka neler yapabileceğinizi görmek için hazır mısınız? Öğretici sayfamızdan daha fazla özelliği burada kontrol edin: Ek Özellikler

Sıkça Sorulan Sorular

Sıkıştırmayla PDF dosya boyutu ne kadar azaltılabilir?

IronPDF, görüntü sıkıştırma ve yapı optimizasyonu ile PDF dosya boyutlarını %75'e kadar azaltabilir. Gösterilen örnekte, bir dosya görüntü sıkıştırma teknikleri kullanılarak %39,24 oranında azaltılmıştır.

IronPDF C#'ta PDF'leri nasıl sıkıştırır?

IronPDF, tek bir yöntem aracılığıyla sıkıştırmayı yönetir — CompressAndSaveAs. Gömülü görüntü boyutlarını 0–100 aralığında yapılandırılabilir bir JPEG kalite kullanarak azaltır ve removeStructureTree: true ayarlanarak PDF'nin iç yapısını isteğe bağlı olarak kaldırabilir. Bu özellik, özellikle tablo ağırlıklı belgelerde etkilidir.

PDF'lerde JPEG sıkıştırması için hangi kalite seviyelerini kullanmalıyım?

IronPDF, %1 ile %100 arasında JPEG sıkıştırma kalitesini destekler. Önerilen seviyeler: yüksek kalite için %90 ve üzeri, orta kalite için %80-%90 arası ve düşük kalite için %70-%80 arası. Optimal ayar, dosya boyutu ve görsel kalite gereksinimleriniz arasındaki dengeye bağlıdır.

Bir PDF'i sadece bir satır kodla sıkıştırabilir miyim?

Evet, IronPDF bir satır kodla PDF sıkıştırmasına izin verir: PdfDocument.FromFile("input.pdf").CompressAndSaveAs("compressed.pdf", 40); Bu, bir PDF'i yükler, görüntüleri %40'lık bir kaliteyle sıkıştırır ve sonucu kaydeder.

Sıkıştırma, HTML'den oluşturulan PDF'lerle çalışıyor mu?

Evet, IronPDF'in sıkıştırma özellikleri, HTML dizesinden PDF dönüşümleri, URL'den PDF dönüşümleri ve HTML dosya dönüşümleri dahil olmak üzere çeşitli yöntemlerle ve mevcut PDF dosyalarıyla sorunsuz çalışır.

Hangi içerik türleri PDF sıkıştırmadan en çok fayda sağlar?

Genellikle PDF dosya boyutlarını tüketen görüntüler, görüntü ağırlıklı belgeleri sıkıştırma için ideal adaylar yapar. Ayrıca, karmaşık tablo yapıları olan PDF'ler IronPDF'in yapı ağacı sıkıştırma özelliğinden faydalanır.

Bir PDF'i diske kaydetmeden sıkıştırabilir miyim?

Evet, IronPDF CompressPdfToBytes ve CompressPdfToStream yöntemlerini sağlar, bunlar sırasıyla sıkıştırılmış PDF'yi bir bayt dizisi veya Stream olarak döndürür. Her ikisi de Otomatik, HızlıBellek veya YüksekKalite sıkıştırma seçenekleri olan opsiyonel SıkıştırmaModu parametresini kabul eder.

PDF sıkıştırma C# dışındaki dillerde mevcut mu?

Evet, CompressPdfToBytes ve CompressPdfToStream artık tüm IronPDF platformlarında mevcuttur, Java, Node.js ve Python dahil.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku
Gözden Geçiren
Jeff Fritz
Jeffrey T. Fritz
Baş Program Yöneticisi - .NET Topluluğu Ekibi
Jeff, .NET ve Visual Studio ekipleri için bir Baş Program Yöneticisidir. .NET Conf sanal konferans serisinin baş yapımcısıdır ve haftada iki kez canlı yayınlanan 'Fritz and Friends' adlı bir akış programı sunar; burada izleyicilerle birlikte teknoloji konuşur ve kod yazar. Jeff, en büyük Microsoft geliştirici etkinlikleri için atölyeler, sunumlar ve içerik planları yazar, Microsoft Build, Microsoft Ignite, .NET Conf ve Microsoft MVP Summit gibi etkinliklerde yer alır.
Başlamaya Hazır mısınız?
Nuget İndirmeler 19,014,616 | Sürüm: 2026.5 just released
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronPdf
bir örnek çalıştır HTML'nizi bir PDF'ye dönüştüğünü izleyin.