Python Kullanarak PDF Dosyalarını Nasıl Sıkıştırılır | IronPDF

Python'da PDF Dosyalarını Nasıl Sıkıştırılır?

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

IronPDF'nin CompressImages yöntemi, Python geliştiricilerinin ayarlanabilir kalite ayarlarıyla gömülü görüntüleri sıkıştırarak PDF dosya boyutlarını küçültmelerine olanak tanır. Bu sayede, okunabilirlikten ödün vermeden depolama alanını optimize edebilir ve belge paylaşımını hızlandırabilirler.

Hızlı Başlangıç: Python'da PDF Dosyalarını Sıkıştırın

:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-compress-pdf/quickstart.py
from ironpdf import PdfDocument

# 1. Install IronPDF: pip install ironpdf
# 2. Load your PDF
pdf = PdfDocument("your-file.pdf")
# 3. Compress images (quality: 1-100)
pdf.CompressImages(60)
# 4. Save compressed PDF
pdf.SaveAs("compressed.pdf")
# 5. Adjust quality parameter to balance size vs quality
// BU KOD PARÇACIK YOKTUR!
from ironpdf import PdfDocument

# 1. Install IronPDF: pip install ironpdf
# 2. Load your PDF
pdf = PdfDocument("your-file.pdf")
# 3. Compress images (quality: 1-100)
pdf.CompressImages(60)
# 4. Save compressed PDF
pdf.SaveAs("compressed.pdf")
# 5. Adjust quality parameter to balance size vs quality
PYTHON

PDF dosyaları, belge depolama ve paylaşmada yaygın olarak kullanılır, ancak büyük boyutlarda hantal hale gelebilirler. 10 MB'lık bir raporu yüklemek veya e-posta ile göndermek, 2 MB'lık bir eşdeğer paylaşımdan belirgin şekilde daha yavaş olur ve belge hacimleri yüksek olduğunda depolama maliyetleri birikir. PDF sıkıştırma, içeriği okunabilir tutarken dosya boyutunu azaltarak bu sorunu ele alıyor.

Bu kılavuz, Python'da PDF dosyalarını sıkıştırmak için IronPDF'i nasıl kullanacağınızı gösteriyor. Pratik kod örnekleri hem standart görüntü sıkıştırma hem de gelişmiş çözünürlük tabanlı sıkıştırmayı kapsar, böylece boru hattınıza uygun yaklaşımı seçebilirsiniz. HTML'den PDF'ye dönüşümlerle veya mevcut belgelerle çalışırken, aynı sıkıştırma API'si geçerlidir.

IronPDF Nedir ve PDF Sıkıştırma İçin Neden Kullanılır?

IronPDF, PDF belgelerinin oluşturulması, okunması, düzenlenmesi ve optimize edilmesini yöneten bir Python PDF kütüphanesidir. Sıfırdan oluşturulmuş, HTML'den dönüştürülmüş veya diskten yüklenmiş dosyalarla çalışır. Sıkıştırma API'si, büyük PDF boyutlarının birincil katkısına hedef alır: görüntüler.

CompressImages yöntemi, 1 ile 100 arasında bir tamsayı ve görüntüleri görünür çözünürlüğe küçülten isteğe bağlı bir boole değeri kabul eder. Bu çift parametre tasarımı, sıkıştırmayı hassas bir şekilde ayarlamanıza olanak tanır: yüksek trafikli bir raporlama panosu, görselleri keskin tutmak için kaliteyi 70 kullanabilir, iç bir arşiv sistemi ise depolama tasarrufunu maksimize etmek için kaliteyi 40 kullanabilir. Kütüphane tüm kodlamayı dahili olarak yönetir, bu nedenle ek bir bağımlılık gerektirmez.

IronPDF, Iron Suite'in bir parçasıdır ve tümü paylaşılan bir Python kurulumundan belge oluşturma, barkod işleme, OCR ve ZIP arşivleme dahil her şeyi kapsar. IronPDF'i sıfırdan PDF oluşturma için zaten kullanan geliştiriciler için, sıkıştırma, dosyaları kaydetme veya dağıtma öncesinde doğal bir takip adımı olarak devreye girer.

IronPDF'i Python'da Nasıl Yüklersiniz?

:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-compress-pdf/install.sh
:ProductInstall
// BU KOD PARÇACIK YOKTUR!
:ProductInstall
SHELL

Lütfen dikkate alınIronPDF for Python, IronPDF .NET kütüphanesi üzerinde çalışır ve .NET 6.0 SDK'sını gerektirir. Resmi Microsoft web sitesinden .NET 6.0 SDK'sını indirip, pip yüklemesi yapmadan önce.

Yükleme sonrasında, lisans anahtarınızı üretim ortamları için yapılandırın. IronPDF, sıkıştırma dahil tüm özellikleri kapsayan, kredi kartı gerektirmeyen ücretsiz 30 günlük bir deneme içerir. PyPI paket sayfası en son sürüm notlarını ve bağımlılık detaylarını listeler.

IronPDF Kullanarak PDF Dosyalarını Nasıl Sıkıştırırsınız?

Belgenin tamamındaki gömülü resimlerin boyutunu küçültmek için CompressImages'ye bir kalite tamsayısı geçirin. Daha düşük tam sayılar, görüntü sadakatinden ödün vererek daha küçük dosyalar üretir; daha yüksek tam sayılar daha fazla ayrıntıyı korur. Aşağıdaki örnek, hem standart bir sıkıştırma çağrısını hem de görünür boyutlarına ölçeklenen gelişmiş bir çağrıyı gösteriyor.

:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-compress-pdf/compress-basic.py
from ironpdf import PdfDocument

# Load the PDF document from a file
pdf = PdfDocument("Image based PDF.pdf")

# Compress images to quality 60 (lower numbers increase compression)
pdf.CompressImages(60)
pdf.SaveAs("document_compressed.pdf")

# Advanced: also scale images down to their visible size in the PDF
# Note: scaling can affect image clarity if pages are resized later
pdf.CompressImages(90, True)
pdf.SaveAs("Compressed.pdf")
// BU KOD PARÇACIK YOKTUR!
from ironpdf import PdfDocument

# Load the PDF document from a file
pdf = PdfDocument("Image based PDF.pdf")

# Compress images to quality 60 (lower numbers increase compression)
pdf.CompressImages(60)
pdf.SaveAs("document_compressed.pdf")

# Advanced: also scale images down to their visible size in the PDF
# Note: scaling can affect image clarity if pages are resized later
pdf.CompressImages(90, True)
pdf.SaveAs("Compressed.pdf")
PYTHON

Sıkıştırma Parametreleri Ne Anlama Geliyor?

CompressImages iki parametre kabul eder:

  • Kalite (gereklidir): 1'den 100'e kadar bir tamsayı. 100 değeri, sıkıştırma uygulanmadan orijinal görüntü kalitesini korur. 40 ile 80 arası değerler çoğu pratik kullanım durumunu kapsar, 60 genel amaçlı belgeler için yaygın bir başlangıç noktasıdır.
  • Görünür boyuta ölçekle (isteğe bağlı): Varsayılan değeri False olan bir boole değeri. True olduğunda, her resim sayfada görüntülenen boyutlarına uyacak şekilde yeniden örneklenir. Bu, kalite sıkıştırmasının üzerine ikinci bir azalma adımı ekler ve daha küçük dosyalar üretir. Daha sonra daha yüksek DPI'da ölçeklenen veya yazdırılan sayfaların artefaktlar gösterdiğini not edin.

Kaydettikten sonra, sıkıştırılmış dosyayı herhangi bir PDF görüntüleyici ile orijinaliyle karşılaştırarak kalitenin gereksinimlerinizi karşıladığını doğrulayın. Ek modelleme örnekleri için PDF sıkıştırma örnekleri sayfasına bakın.

Sıkıştırmadan Önce PDF Nasıl Görünüyor?

IronPDF Python sıkıştırması uygulanmadan önce 458 KB dosya boyutunu gösteren, Microsoft Edge tarayıcısında açık PDF dosyası

Sıkıştırmadan Sonra PDF Nasıl Görülüyor?

Windows Gezgini'nde 357 KB dosya boyutu gösteren sıkıştırılmış PDF dosyası girişi; IronPDF CompressImages kullanılarak kalite 60 ayarında 458 KB'den %22 oranında küçültülmüştür

Karşılaştırma, kalite 60 kullanılarak 458 KB'den 357 KB'ye (%22 civarında) bir azalma gösteriyor. Fotoğraf içeriği açısından yüksek orana sahip dosyalar, genellikle metin veya vektör grafikleriyle dolu dosyalardan daha büyük azalmalar elde eder.

Birden Fazla PDF Dosyasına Toplu Sıkıştırmayı Nasıl Uygularsınız?

Bir PDF dosyaları klasörünün işlenmesi aynı API'yi izler: her bir .pdf dosyası üzerinde yineleme yapın, PdfDocument ile yükleyin, CompressImages'yi çağırın ve sonucu kaydedin. Aşağıdaki işlev, bu deseni yeniden kullanılabilir bir araca dönüştürür.

:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-compress-pdf/batch-compress.py
import os
from ironpdf import PdfDocument

def batch_compress_pdfs(input_folder, output_folder, quality=60):
    """
    Compress all PDF files in a folder.

    Args:
        input_folder: Path to folder containing source PDFs
        output_folder: Path where compressed PDFs will be saved
        quality: Compression quality (1–100); default is 60
    """
    # Create the output folder if it does not exist
    os.makedirs(output_folder, exist_ok=True)

    for filename in os.listdir(input_folder):
        if filename.endswith(".pdf"):
            input_path = os.path.join(input_folder, filename)
            output_path = os.path.join(output_folder, f"compressed_{filename}")

            try:
                pdf = PdfDocument(input_path)
                pdf.CompressImages(quality)
                pdf.SaveAs(output_path)
                print(f"Compressed: {filename}")
            except Exception as e:
                print(f"Error compressing {filename}: {e}")
// BU KOD PARÇACIK YOKTUR!
import os
from ironpdf import PdfDocument

def batch_compress_pdfs(input_folder, output_folder, quality=60):
    """
    Compress all PDF files in a folder.

    Args:
        input_folder: Path to folder containing source PDFs
        output_folder: Path where compressed PDFs will be saved
        quality: Compression quality (1–100); default is 60
    """
    # Create the output folder if it does not exist
    os.makedirs(output_folder, exist_ok=True)

    for filename in os.listdir(input_folder):
        if filename.endswith(".pdf"):
            input_path = os.path.join(input_folder, filename)
            output_path = os.path.join(output_folder, f"compressed_{filename}")

            try:
                pdf = PdfDocument(input_path)
                pdf.CompressImages(quality)
                pdf.SaveAs(output_path)
                print(f"Compressed: {filename}")
            except Exception as e:
                print(f"Error compressing {filename}: {e}")
PYTHON

except bloğu, tek bir bozuk veya parola korumalı dosyanın tüm işlemeyi durdurmasını engeller. Dosya adı ile birlikte özel durum mesajını günlüğe kaydetmek, hangi dosyaların manuel incelemeye ihtiyaç duyduğunu belirlemeyi kolaylaştırır. Daha yüksek hacimli hatlar için klasörü parçalara ayırmayı ve bunları paralel dizilerde işlemlerini göz önünde bulundurun.

İpuçlarıFotoğrafik görüntülerle teknik diyagramları karıştıran belgeler için iki geçiş çalıştırın: fotoğraflar için kalite 50 ve diyagram ağırlıklı sayfalar için kalite 85 uygulayın. PDF'leri birleştirme API'sini kullanarak her bölümü en uygun kalite seviyesinde tutmak için çıkarın ve yeniden birleştirin.

PDF Sıkıştırması için Hangi Kalite Ayarlarını Kullanmalı?

Doğru kalite ayarı, sıkıştırma sonrasında PDF'nin nasıl kullanılacağına bağlıdır. Üç aralık, en yaygın senaryoları kapsar.

Yüksek kalite (70–90): Yazdırma veya resmi dağıtım için tasarlanan belgeler bu aralıkta kalmaktan fayda sağlar. Metin keskin kalır ve diyagramlar standart yazdırma çözünürlüklerinde okunabilir olur. Dosya boyutu azaltması sınırlıdır, genellikle %10–25, ancak çıktı, çoğu okuyucu için kaynaktan ayırt edilemez.

Orta kalite (50–70): Bu aralık web teslimatı ve e-posta ekleri için uygundur. Fotoğrafik içerik yakından incelenecek hafif yumuşama gösterir, ancak dosya boyutundaki (%25-50 sıklıkla) azalma yükleme sürelerini ve e-posta teslimatını anlamlı biçimde iyileştirir. Çoğu doküman yönetim sistemleri ve portal yüklemeleri kalite 60'ta iyi çalışır.

Saldırgan sıkıştırma (30–50): İç arşivler, uzun süreli depolama yedekleri ve yazdırılmayacak belgeler bu aralığı kullanabilir. Kalite 40'da görüntüler belirgin şekilde daha yumuşaktır, ancak PDF motoru tarafından oluşturulan (görseller olarak eklenmiş olmayan) metin tamamen net kalır. Bu yaklaşım ayrıca görüntülere dönüştürülecek ve ekrandan önce yeniden boyutlandırılacak belgeler için de uygundur.

ÖnemliOrijinal sıkıştırılmamış dosyayı her zaman erişilebilir tutun. Görüntüler için sıkıştırma kayıplıdır; sıkıştırılmış bir PDF'den orijinal görüntü verilerini geri kazanmanın bir yolu yoktur.

Python'da Sıkıştırma Sonuçlarını Nasıl Doğrularsınız?

Çıktı dosyasının boyutunu programlı olarak kontrol etmek, dosya iş akışındaki bir sonraki adıma geçmeden önce sıkıştırmanın hedefinize ulaştığını doğrular. Python'un yerleşik os.path.getsize işlevi, herhangi bir dosya yolu için bayt sayısını döndürür, bu nedenle doğrulama için ek kütüphanelere gerek yoktur.

:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-compress-pdf/verify-compression.py
import os
from ironpdf import PdfDocument

# Load and compress the document
pdf = PdfDocument("report.pdf")
original_size = os.path.getsize("report.pdf")

pdf.CompressImages(60)
pdf.SaveAs("report_compressed.pdf")

compressed_size = os.path.getsize("report_compressed.pdf")
reduction_pct = (1 - compressed_size / original_size) * 100

# Report results to confirm compression was effective
print(f"Original:   {original_size / 1024:.1f} KB")
print(f"Compressed: {compressed_size / 1024:.1f} KB")
print(f"Reduction:  {reduction_pct:.1f}%")
// BU KOD PARÇACIK YOKTUR!
import os
from ironpdf import PdfDocument

# Load and compress the document
pdf = PdfDocument("report.pdf")
original_size = os.path.getsize("report.pdf")

pdf.CompressImages(60)
pdf.SaveAs("report_compressed.pdf")

compressed_size = os.path.getsize("report_compressed.pdf")
reduction_pct = (1 - compressed_size / original_size) * 100

# Report results to confirm compression was effective
print(f"Original:   {original_size / 1024:.1f} KB")
print(f"Compressed: {compressed_size / 1024:.1f} KB")
print(f"Reduction:  {reduction_pct:.1f}%")
PYTHON

Çıktı, günlüğe kaydedilebilecek veya bir eşik ile karşılaştırılabilecek net bir azalma yüzdesi sağlar. Eğer azalma beklentilerden düşükse, belge az veya hiç gömülü görüntü içermeyebilir. Bu durumda, CompressImages yalnızca raster görüntüleri hedeflediğinden, kalite ayarından bağımsız olarak dosya boyutu büyük ölçüde değişmeyecektir. Metin ve vektör grafikleri bu yöntemden etkilenmez.

Lütfen dikkate alınIronPDF'nin sıkıştırması, PDF içindeki raster görüntüler için JPEG kodlamasını hedefler. JPEG sıkıştırma standardı, kalite parametresinin kontrol ettiği kalite-boyut takasını tanımlar. Daha düşük değerler, hem dosya boyutunu hem de görüntü detayını azaltan daha agresif JPEG nicemlemesi uygular.

Python'da PDF Sıkıştırma için Bir Sonraki Adımlar Nelerdir?

IronPDF'nin CompressImages yöntemi, Python geliştiricilerine PDF dosya boyutlarını küçültmek için tek ve kapsamlı bir API sunar. Depolama tasarruflarını görsel doğrulukla dengelemek için kalite parametresini ayarlayın ve çıktı boyutları sabit olduğunda ikinci bir azalma geçişi için çözünürlük ölçekleme boolean ekleyin. IronPDF'nin ele aldığı konuları daha geniş bir açıdan görmek için, Python PDF kütüphanesi genel bakış sayfasına bakın.

Ücretsiz denemenizi başlatın ve IronPDF'nin tüm özellik setiyle birlikte HTML'den PDF'ye dönüştürme, dijital imzalar, form işleme ve belge birleştirme işlemlerini test edin. Deneme süresi sona erdiğinde, lisanslama seçeneklerini görüntüleyin ve dağıtımınıza uygun planı bulun.

IronPDF'nin başka neler yapabileceğini görmeye hazır mısınız? IronPDF'nin temel yeteneklerini yürüyerek izlemek için tam Python PDF eğitimini keşfedin.

Sıkça Sorulan Sorular

Python'da PDF'leri sıkıştırmak için IronPDF nasıl kurulum yaparım?

Terminalinizde pip install ironpdf çalıştırın. IronPDF for Python, .NET 6.0 SDK'nın önceden kurulu olmasını gerektirir. Kurulumdan sonra, ironpdf paketinden PdfDocument'ı içe aktararak PDF'leri sıkıştırmaya başlayabilirsiniz.

Python'da bir PDF dosyasını sıkıştırmak için temel kod nedir?

PdfDocument("your-file.pdf") ile dosyayı yükleyin, 1 ila 100 arasında bir kalite tam sayısı ile CompressImages(60) çağırın ve SaveAs("compressed.pdf") kullanarak sonucu kaydedin. Dosya boyutunu görüntü sadakatiyle dengelemek için kalite değerini ayarlayın.

Kalite parametresi PDF sıkıştırmayı nasıl etkiler?

CompressImages kalite parametresi 1 ila 100 arasında değişir. Düşük değerler daha küçük dosyalar üretirken daha belirgin görüntü yumuşatma sağlar. Yüksek değerler daha fazla detayı korur ancak daha büyük bir dosya boyutu oluşturur. Pratik kullanım durumlarının çoğunluğu için 40 ile 80 arasında değerler uygundur ve 60 genellikle iyi bir başlangıç ​​noktasıdır.

CompressImages'e ikinci bir argüman geçirebilir miyim?

Evet. İkinci argüman olarak True geçmek, IronPDF'in her resmi sayfanın görünür boyutlarına yeniden örneklemeden önce kalite sıkıştırması uygulamasını söyler. Bu ikinci bir azaltım aşaması ekler ve dosya boyutu daha da küçülür, ancak sayfalar daha yüksek DPI ile ölçeklendiğinde veya basıldığında artefaktlar gösterebilir.

PDF sıkıştırması, metin ve vektör grafikleri etkiler mi?

CompressImages, PDF'ye gömülü raster görüntüleri hedef alır. PDF motoru tarafından işlenen metin ve vektör grafikleri bu yöntemden etkilenmez, bu nedenle gömülü resimlerin az olduğu veya hiç olmadığı belgeler minimum boyut azaltımı gösterecektir.

Python'da dosya boyutu azalımını nasıl doğrularım?

Kaydedilen dosyanın bayt sayısını almak için os.path.getsize("compressed.pdf") kullanın ve orijinal ile karşılaştırın. Farkı orijinal boyutuna bölmek, azalım yüzdesini bir ondalık olarak verir.

Web teslimi için en iyi kalite aralığı nedir?

50 ila 70 arasındaki bir kalite ayarı, çoğu web teslimi ve e-posta senaryosu için uygundur. Bu aralık genellikle dosya boyutunu yüzde 25 ila 50 azalırken fotoğrafik içeriği ekran üzerinden okuma için görsel olarak kabul edilebilir tutar.

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
Başlamaya Hazır mısınız?
Sürüm: 2026.5 just released
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

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