Enterprise sürüm
Document E-Filing — Derinlemesine başvuru
Bir bakışta
“Bir bakışta” başlıklı bölümEFilingOptimizer, bir PDF’i elektronik mahkeme dosyalaması için tek ve sabit sıralı bir geçişte hazırlar: temizleme, doğrusallaştırma, boyuta göre bölme.EFilingProfile, yargı çevresi kısıtlamalarını kodlar. Yerleşik fabrikalar US PACER, EU e-Justice ve Taiwan Judicial Yuan’ı kapsar.SizeAwareSplitter, doğrula-sonra-düzelt yeniden bölme ile parça başına bir bayt üst sınırı uygular.- Çıktı bir teslimat yapıtıdır. İmzalama veya arşivleme işlem hatlarına yeniden girmemelidir.
- Modül hiçbir kriptografik işlem gerçekleştirmez ve hiçbir giden ağ çağrısı yapmaz.
Kullanılabilirlik ve lisanslama
“Kullanılabilirlik ve lisanslama” başlıklı bölümBu yetenek NextPDF Enterprise (nextpdf/enterprise) ile birlikte gelir ve bir Enterprise 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.
nextpdf/enterprise paket sınırı bu yüzeyi kapılar; özellik başına ayrı bir yetenek kodu yoktur. Hiçbir Core veya Pro sürümü bir e-dosyalama optimize edici sağlamaz.
Genel API yüzeyi
“Genel API yüzeyi” başlıklı bölümcomposer require nextpdf/enterprise:^3| Sembol | Parametreler | Varsayılan davranış | Döndürür | Şununla hata verir veya başarısız olur | Notlar |
|---|---|---|---|---|---|
EFilingOptimizer::optimize() | string $pdfData, ?EFilingProfile $profile = null | Profil varsayılan olarak EFilingProfile::pacer() olur; temizleme, doğrusallaştırma, boyuta göre bölmeyi sabit sırada çalıştırır | EFilingResult | Sınır üstü bir girdi geçerli bir PDF olmadığında bölme adımından InvalidArgumentException; temizleme ve doğrusallaştırma hataları uyarılara indirgenir | Çıktı bir teslimat yapıtıdır |
EFilingProfile::__construct() | $name, $maxFileSizeBytes = 26_214_400, $flattenForms = true, $removeJavaScript = true, $imageQuality = 75, $linearize = true, $compressObjectStreams = true | Değişmez yargı çevresi profili | EFilingProfile | Hata vermez | Yerleşik fabrikası olmayan portallar için özel üst sınırlar |
EFilingProfile::pacer() | yok | 25 MiB üst sınır, görüntü kalitesi 75 | EFilingProfile | Hata vermez | US PACER |
EFilingProfile::euJustice() | yok | 10 MiB üst sınır, görüntü kalitesi 70 | EFilingProfile | Hata vermez | EU e-Justice Portal |
EFilingProfile::taiwan() | yok | 10 MiB üst sınır, görüntü kalitesi 70 | EFilingProfile | Hata vermez | Taiwan Judicial Yuan |
SizeAwareSplitter::splitByMaxSize() | string $pdfData, int $maxBytes | Girdi sığdığında tek parça; aksi halde tahmin et, doğrula, yeniden böl | list<EFilingSegment> | Sınır üstü bir girdi bir %PDF başlığından yoksun olduğunda InvalidArgumentException | Sınır altı girdi, doğrulama olmadan tek parça olarak döner |
EFilingResult::isSplit() | yok | Birden fazla parça olduğunda true | bool | Hata vermez | — |
EFilingResult::segmentCount() | yok | Toplam parça sayısı | int | Hata vermez | — |
EFilingResult::compressionRatio() | yok | optimizedTotalSize / originalSize | float | Hata vermez; boş özgün girdi için 0.0 | Düşük olan daha iyidir |
EFilingSegment | $pdfData, $pageRange, $sizeBytes, $segmentIndex | Değişmez çıktı parçası | değer nesnesi | Hata vermez | 1-25 veya all gibi bir sayfa aralığı dizesi |
public function optimize(string $pdfData, ?EFilingProfile $profile = null): EFilingResultpublic function __construct( public string $name, public int $maxFileSizeBytes = 26_214_400, public bool $flattenForms = true, public bool $removeJavaScript = true, public int $imageQuality = 75, public bool $linearize = true, public bool $compressObjectStreams = true,) {}
public static function pacer(): selfpublic static function euJustice(): selfpublic static function taiwan(): selfpublic function splitByMaxSize(string $pdfData, int $maxBytes): arraypublic function __construct( public array $segments, public int $originalSize, public int $optimizedTotalSize, public array $optimizations = [], public array $warnings = [],) {}
public function isSplit(): boolpublic function segmentCount(): intpublic function compressionRatio(): floatDavranış sözleşmesi
“Davranış sözleşmesi” başlıklı bölümEFilingOptimizer::optimize(), girdi baytları üzerinde sabit sıralı bir işlem hattı çalıştırır. Birinci adım, removeJavaScript ayarlandığında etkin içeriği kaldırır. İçeriği etkisizleştirme ve yeniden yapılandırma motoruna dosyalamaya özgü bir ilkeyle devreder: JavaScript, adlandırılmış JavaScript, başlatma eylemleri, form gönderimi ve veri içe aktarma eylemleri kaldırılır; dosyalamalar meşru bağlantılar taşıyabileceğinden URI eylemleri korunur (allowUriActions); artımlı güncellemeler tek bir düzeltmeye düzleştirilir (flattenIncrementalUpdates). İkinci adım, linearize ayarlandığında temizlenmiş baytları Core NextPDF\Writer\Linearizer aracılığıyla doğrusallaştırır. Üçüncü adım, profilin maxFileSizeBytes değerini SizeAwareSplitter aracılığıyla uygular.
Bölücü, ortalama sayfa boyutundan parça başına sayfa sayısını tahmin eder, böler, sonra üretilen her parçayı üst sınıra göre doğrular. Hâlâ birden fazla sayfaya yayılan, sınır üstü herhangi bir parça, her çocuğu sığana veya tek bir sayfa olana kadar, her geçişte kendi sayfa yayılımını yarıya indirerek özyinelemeli olarak yeniden bölünür. Sınırlı bir yeniden bölme derinliği, patolojik yakınsamama durumuna karşı koruma sağlar. Çıktı dizinleri, bitişik ve sıfır tabanlı kalacak şekilde yeniden normalleştirilir.
optimize(), üç profil alanını tüketir: maxFileSizeBytes, removeJavaScript ve linearize. flattenForms, imageQuality ve compressObjectStreams alanları, optimize() öğesinin 3.1.0’da üzerinde işlem yapmadığı, bildirilmiş profil kısıtlamalarıdır.
E-dosyalama çıktısı, bir belge yaşam döngüsü durumu değil, bir teslimat yapıtıdır. Optimize edilmiş veya bölünmüş bir PDF, iletim için kesinleşmiştir ve bir imzalama veya arşivleme işlem hattına yeniden girmemelidir; yeniden işleme, karma zincirlerini ve kanıt bütünlüğünü bozar.
Bu modül, yapılandırıldığı biçimde e-mahkeme / devlet dosyalaması için biçimler hazırlar. Herhangi bir mahkeme, sicil, kurul veya dosyalama portalı tarafından kabul edileceğini garanti etmez. Yerleşik profil üst sınırları, her portaldan canlı bir akış değil, yaygın olarak yayımlanan kısıtlamaları bir kolaylık olarak kodlar; portal kuralları yargı çevresine göre değişir ve değişir. Bunları hedef sicilin güncel kurallarına göre doğrulamak dosyalayıcının sorumluluğundadır.
İşleme, süreç içinde ve yereldir. Bir mahkeme, sicil veya dosyalama portalına taşıma, bu modülün dışındadır.
Uç durumlar ve hata modları
“Uç durumlar ve hata modları” başlıklı bölüm- Üst sınırda veya altında girdi:
allsayfa aralığına sahip tek parça; bölme adımı baytları değiştirmeden bırakır. - Temizleme reddi (örneğin ayrıştırılamayan bir girdi):
CDR sanitization rejected: <reason>uyarısı kaydedilir ve işlem hattı özgün baytlarla devam eder. - Hiçbir tehdit bulunmayan temizleme geçişi: baytlar yine de yeniden oluşturulmuş PDF ile değiştirilir ve bir optimizasyon girdisi temiz geçişi kaydeder.
- Doğrusallaştırma hatası:
Linearization skipped: <message>uyarısı kaydedilir ve işlem hattı doğrusallaştırılmamış baytlarla devam eder. - Üst sınırın üzerindeki tek sayfa: gerçekten bölünemez, sınır üstü tek bir parça olarak değiştirilmeden döndürülür. Bu durum için hiçbir uyarı kaydedilmez; dosyalamadan önce her parçanın
sizeBytesdeğerini profil üst sınırına göre karşılaştırın. - Yeniden bölme derinliği üst sınırına ulaşıldı: sınır üstü parça, döngüye girmek yerine değiştirilmeden geçer.
- Özgün girdi boş olduğunda
compressionRatio(),0.0döndürür. - Modül hiçbir kriptografik işlem gerçekleştirmez; FIPS modu uygulanabilir değildir.
Uygunluk
“Uygunluk” başlıklı bölüm| Davranış | Başvuru | Durum |
|---|---|---|
| Doğrusallaştırılmış çıktı organizasyonu (ilk sayfa verisi dosya başında) | ISO 32000-2:2020 Annex F / Annex G | Karşı geliştirildi |
| İlişkili dosya bağıntı semantiği | ISO 19005-3:2012 §6.7.8 | Taşıyıcılar geçerli olduğunda onurlandırılır |
| Gömülü dosya taşıyıcı gereksinimleri | ISO 19005-4:2020 Annex A | Taşıyıcılar geçerli olduğunda onurlandırılır |
Doğrusallaştırma, ilk sayfayı görüntülemek için gereken tüm verileri verimli artımlı erişim için dosyanın başına yerleştiren Linearized PDF organizasyonunu hedefler.
Bu satırlar, atıfta bulunulan maddelere karşı geliştirilmiş yeteneği açıklar. Destek uygunluk değildir ve uygunluk sertifikasyon değildir; NextPDF hiçbir sertifikasyona sahip değildir. Bu sayfadaki hiçbir ifade, herhangi bir dosyalama portalı tarafından kabul edileceğini garanti etmez.
Bu sayfa export_control_class: legal-review-required taşır. NextPDF hukuki tavsiye sağlamaz. Dosyalama kuralları yargı çevresine göre değişir ve değişir; bunları karşılamak dosyalayıcının sorumluluğundadır. Hukuk danışmanınıza ve hedef sicilin güncel yönergesine başvurun.
Geliştirme notları
“Geliştirme notları” başlıklı bölümuse NextPDF\Enterprise\Document\EFiling\EFilingOptimizer;use NextPDF\Enterprise\Document\EFiling\EFilingProfile;
$optimizer = new EFilingOptimizer();$result = $optimizer->optimize($pdfBytes, EFilingProfile::euJustice());
foreach ($result->segments as $segment) { // Persist $segment->pdfData; confirm $segment->sizeBytes fits the cap.}- Dosyalamadan önce
$result->warningsöğesini inceleyin. Reddedilen bir temizleme veya atlanan bir doğrusallaştırma, bir istisna olarak değil, orada görünür. - Önce kaynak belgeyi imzalayın ve arşivleyin; sonra teslimat için bir kopyayı optimize edin. Optimize edilmiş bir parçayı asla yeniden imzalamayın, yeniden damgalamayın veya arşivlemeyin.
- Her parçanın
sizeBytesdeğerini profil üst sınırına göre doğrulayın. Bölünemez, sınır üstü bir sayfa, sessizce çıktıya ulaşır. - Yerleşik fabrikası olmayan portallar için, portalın yayımlanmış üst sınırıyla özel bir
EFilingProfileoluşturun.
Yayımlama sınırı
“Yayımlama sınırı” başlıklı bölümBu sayfa yalnızca dışarıdan gözlemlenebilir davranışı ve desteklenen genel API yüzeyini belgeler. İç ad alanı yolları, yardımcı sınıflar, mekanizma tabloları, runbook dosya adları ve bilet önekleri kapsam dışıdır.