Pro sürüm
Optimizer
Bir bakışta
“Bir bakışta” başlıklı bölümOptimizer, bir PDF’i yinelenen nesneler ve görüntü yeniden sıkıştırma potansiyeli açısından analiz eder, ardından tahmini boyut azaltmasını raporlar. Üç düzey, çıktı doğruluğunu dosya boyutuna karşı dengeler.
Kullanılabilirlik ve lisanslama
“Kullanılabilirlik ve lisanslama” başlıklı bölümBu yetenek NextPDF Pro (nextpdf/pro) ile birlikte gelir ve bir Pro katmanı lisans zarfıyla etkinleşir. Bu yetkilendirmeye sahip olmayan bir dağıtım, yeteneğin sınıflarını yüklemez. Sürümleri karşılaştırın ve bir lisans edinin.
Özellik başına ayrı bir lisans bayrağı yoktur. Optimizasyon düzeyi (lossless, balanced, aggressive) bir lisans anahtarı değil, bir çalışma zamanı parametresidir.
Yükleme
“Yükleme” başlıklı bölümcomposer require nextpdf/pro:^3Kod, NextPDF\Pro\Optimizer ad alanı altında yer alır.
Kavramsal genel bakış
“Kavramsal genel bakış” başlıklı bölümPdfOptimizer, bir nesne yineleme kaldırıcısını ve bir görüntü yeniden sıkıştırıcısını koordine eder. Ham PDF baytları verildiğinde, yinelenen nesne gruplarını bulur (düzey buna izin verdiğinde), görüntüleri analiz eder ve her görüntü için düzeyin hedef kalitesinde sıkıştırmayı tahmin eder. Bulguları; orijinal boyutu, tahmini optimize edilmiş boyutu, kaldırılan nesneleri ve öncesi ile sonrası görüntü sayılarını raporlayan bir OptimizationResult’a toplar.
OptimizationLevel, ödünleşimi tanımlar: lossless, görüntü kalitesini korur ve bayt-kararlı çıktı için yineleme kaldırmayı atlar; balanced, yineleme kaldırır ve yüzde 75 görüntü kalitesini hedefler; aggressive, yineleme kaldırır, alt örnekler ve yüzde 50 kaliteyi hedefler.
Neden bu şekilde çalışır
“Neden bu şekilde çalışır” başlıklı bölümOptimizer, yeniden yazmaz, analiz eder. analyze(), olası tasarrufları tahmin eder ve girdiyi değiştirmeden bir OptimizationResult döndürür. Bu, geçişi tahrip edici olmaktan çıkarır ve onu Writer aracılığıyla uygulayıp uygulamayacağınıza karar vermenizi sağlar. Düzey soyutlaması, ödünleşimi tek bir yerde tutar: lossless, deduplicateStreams() işlevinden false döndürür; böylece çıktı bayt-özdeş kalabilir, balanced ve aggressive ise görüntü akışlarını daha düşük kalite hedeflerinde yeniden sıkıştırır. Elde edilebilir tasarruflar, bir belgenin akışlarını ve görüntülerini zaten nasıl kodladığına bağlıdır; bu nedenle modül, sabit bir manşet rakamı yerine gerçekte mevcut olan nesnelerden bir tahmin raporlar. Tasarım arka planı: Akışlar ve filtreler.
Davranış sözleşmesi
“Davranış sözleşmesi” başlıklı bölümanalyze($pdfData), birOptimizationResultdöndürür; girdiyi değiştirmez.- Lossless düzeyi, çıktının bayt-kararlı kalabilmesi için akış yineleme kaldırmayı atlar; balanced ve aggressive, yineleme kaldırmayı etkinleştirir.
- Görüntü kalitesi hedefleri, sırasıyla lossless, balanced ve aggressive için yüzde 100, 75 ve 50’dir.
- Tahmini optimize edilmiş boyut, asla sıfırın altına düşmez ve asla orijinali aşmaz.
withLevel($level), istenen düzeyde yeni bir optimize edici döndürür; örnekler değiştirilmez.
Kod örneği — Hızlı başlangıç
“Kod örneği — Hızlı başlangıç” başlıklı bölümAşağıdaki, belgelenmiş genel API’yi yansıtır. Depo, bu modül için çalıştırılabilir bir örnek sunmaz.
use NextPDF\Pro\Optimizer\PdfOptimizer;
$result = (new PdfOptimizer())->analyze($pdfBytes);Kod örneği — Üretim
“Kod örneği — Üretim” başlıklı bölümuse NextPDF\Pro\Optimizer\PdfOptimizer;use NextPDF\Pro\Optimizer\OptimizationLevel;
$optimizer = new PdfOptimizer(OptimizationLevel::Aggressive);$result = $optimizer->analyze($pdfBytes);
$savings = $result->originalSize > 0 ? (1 - $result->optimizedSize / $result->originalSize) * 100 : 0.0;Uç durumlar ve dikkat edilecekler
“Uç durumlar ve dikkat edilecekler” başlıklı bölümanalyze(), potansiyeli tahmin eder; optimize edilmiş bir belge üretmek için onu Writer modülüyle eşleştirin.- Lossless düzeyi, kaliteyi koruduğu ve yineleme kaldırmayı atladığı için kasıtlı olarak çok az boyut azaltması sağlar.
- Sonrası görüntü sayısı, atılan görüntüleri değil, yineleme kaldırma yoluyla kaldırılan görüntüleri yansıtır.
Performans
“Performans” başlıklı bölümAnaliz, girdi boyutunda doğrusaldır; buna nesne ve görüntü yapılarını tarama maliyeti eklenir. Düzey, yineleme kaldırma ve yeniden sıkıştırma tahminlerinin ne kadar agresif olacağını denetler. Yayımlanmış sabit bir boyut azaltma rakamı yoktur; sonuçlar tamamen belgeye bağlıdır. Temsili belgelerle ölçün.
Güvenlik notları
“Güvenlik notları” başlıklı bölümGirdiyi güvenilmez olarak değerlendirin. Analiz salt okunur kalır ve gömülü içeriği çalıştırmaz. Bu modül hiçbir belge içeriğini günlüğe kaydetmez.
Uygunluk
“Uygunluk” başlıklı bölümOptimizasyon, ISO 32000-2 tarafından tanımlanan PDF nesne ve görüntü modeli üzerinde çalışır; kaynak, ilgili kuralları açıklar. RAG külliyatı yazma sırasında kullanılamadığından, bu sayfa hiçbir harici kural tanımlayıcısı öne sürmez ve uygunluk beyanlarını modülün testleriyle doğrulanan davranışla sınırlar.
Enterprise sınır notu
“Enterprise sınır notu” başlıklı bölümEnterprise, Optimizer davranışını değiştirmez. Enterprise, ayrı olarak belgelenen daha üst katman uyumluluk ve arşivleme özellikleri ekler; bunlar optimizasyon potansiyelini analiz etmek için gerekli değildir.
Core geri dönüşü / alternatifi
“Core geri dönüşü / alternatifi” başlıklı bölümPro olmadan, NextPDF Core’un temel optimizasyonunu kullanın; nesne yineleme kaldırma ve ayarlanabilir görüntü yeniden sıkıştırma analizi, Pro eklentileridir. Bkz..
Yayın sınırı
“Yayın sınırı” başlıklı bölümBu sayfa yalnızca dışarıdan gözlemlenebilen davranışı ve desteklenen genel API yüzeyini belgeler. İç ad alanı yolları, yardımcı sınıflar, mekanizma tabloları, runbook dosya adları ve ticket önekleri kapsam dışıdır.