İçeriğe geç
getnextpdf.com

Pro sürüm

Compliance — Derinlemesine başvuru

Compliance modülü, NextPDF\Pro\Compliance altında üç bağımsız yüzeyi bir araya getirir:

  • Dil etiketi raporlama — sıkı bir PDF/UA-2 /Lang politika cephesi artı yapılandırılmış, PSR-3 biçimli bir uygunluk olayı raportörü.
  • E-fatura işleme — EN 16931 anlamsal modeline karşı Factur-X 1.08 / ZUGFeRD 2.4 doğrulaması ve hibrit PDF/A-3 üretimi.
  • Köken — çekişmeli sertleştirilmiş bir JUMBF ayrıştırıcısı aracılığıyla çağıran tarafından sağlanan C2PA bildiri depolarını gömer ve çıkarır; iddia sentezi önizleme kapısında kalır.

Modül, denetlediğini raporlar. Belgeleri sertifikalandırmaz ve kriptografik imzalama yapmaz.

Bu yetenek NextPDF Pro (nextpdf/pro) ile gelir ve 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 lisans edinin.

Özellik başına lisans bayrağı yoktur. Bu bir Pro sürümü yeteneğidir. Deneysel C2PA iddia oluşturucusu, ayrıca açık bir ortam onayı gerektirir (bkz. Uç durumlar ve arıza modları).

Terminal window
composer require nextpdf/pro:^3
SembolParametrelerVarsayılan davranışDöndürürFırlatır veya şununla başarısız olurNotlar
LangComplianceReporter::warn() / ::error()string $tag, string $reason, ?string $clauseReference = nullPSR-3 günlükleyicisi aracılığıyla dil etiketi olayı başına bir yapılandırılmış JSON kaydı yayarvoidKayıt JSON kodlamada başarısız olursa JsonExceptionwarn = gevşek mod reddi; error = sıkı mod reddi
LangComplianceReporter::reportException()InvalidBcp47TagException $exception, string $severity = 'error'Etiketi ve nedeni istisnadan çıkarır; warn() veya error()’a devredervoidYukarıdaki gibiKolaylık yolu
LangComplianceReporter::buildRecord()string $severity, string $tag, string $reason, ?string $clauseReference = nullKayıt dizisini günlüğe kaydetmeden oluştururarrayFırlatmazDosya başına JSON özetleri gibi özel alıcılar için
ConformancePolicy::default()?LoggerInterface $logger = nullSıkı UA-2 politikası: hatalı biçimlendirilmiş veya kayıtlı olmayan /Lang etiketleri reddedilirselfFırlatmazv5.0 varsayılanı sıkıdır
ConformancePolicy::fromCore()CoreConformancePolicy $core, ?LoggerInterface $logger = nullMevcut bir Core politikasını olduğu gibi sarar; hiçbir eksen değiştirilmezselfFırlatmazSıkı duruş için default()’u tercih edin
ConformancePolicy::withStrictUa2()bool $enabledSıkı eksen ayarlanmış bir kopya döndürür; devre dışı bırakma bir PSR-3 notice yayarselfFırlatmazDeprecated devre dışı bırakma; kaldırma hedefi 6.0.0
ConformancePolicy::isStrictUa2() / ::mode()Temel Core politikasını okurbool / ConformanceModeFırlatmaz
EInvoiceValidator::validate()string $pdfPathTam işlem hattı: PDF/A-3 sarmalayıcı denetimi, ek çıkarma, profil algılama, EN 16931 kuralları, SchematronEInvoiceValidationResultG/Ç hatası, hatalı biçimlendirilmiş PDF yapısı veya araç çökmesi durumunda EInvoiceException alt sınıfıDondurulmuş SPI arabirimi; iyi biçimlendirilmiş, e-fatura olmayan bir PDF bir sonuç döndürür, asla fırlatmaz
EInvoiceXmlValidator::validate()string $xmlPayload, ValidatorContext $contextBir CII yükü üzerinde yapısal ön denetim artı EN 16931 derin anlamsal kural külliyatısözleşme ValidationResultGeçersiz giriş için fırlatmaz; ret, bulgularla birlikte başarısız bir sonuç olarak ortaya çıkarSomut katmanlar arası doğrulayıcı; giriş XmlGuard aracılığıyla kapılanır
EInvoiceValidationResult::isValid()Yalnızca sarmalayıcı, ek belirtimi, profil, sözdizimi geçerli olduğunda ve hiçbir FATAL ihlal bulunmadığında doğruboolFırlatmazBoş ihlal listesi tek başına geçerlilik değildir
EInvoiceValidationResult::notAnEInvoice()Belirlenimci tümü-null, tümü-false sonuçselfFırlatmaz”Hibrit fatura değil” durumu için fabrika
EInvoiceProfilestring destekli enumMINIMUM, BASIC_WL, BASIC, EN16931, EXTENDED durumları, BT-24 URN’leriyle desteklenirisEn16931Conformant(), MINIMUM ve BASIC_WL için false’tur
EInvoiceSyntaxstring destekli enumUN_CEFACT_CII, UBL_INVOICE, UBL_CREDIT_NOTE durumlarıYalnızca CII isFacturXEligible()’dir; UBL yalnızca doğrulayıcıdır
BusinessRuleViolationstring $ruleId, BusinessRuleSeverity $severity, string $message, ?string $xpath = null, ?string $ramPath = nullDeğişmez ihlal DTO’suKural kimliği aileleri BR-, BR-CO-, BR-CL-, BR-DEC-, BR-FXEXT-
BusinessRuleSeveritystring destekli enumFATAL faturayı geçersiz kılar; WARNING bir kalite endişesini işaretlerEN 16931 Schematron düzeylerini yansıtır
FacturXEmbedder::embed()imza bloğuna bakınBir PDF/A kaynağına gömülü dosya akışı, dosya belirtimi ve XMP ekler; xref’i yeniden yazarvoidHatalı biçimlendirilmiş XML, okunamayan kaynak, eksik katalog, nesne akışı veya xref akışı kaynağı ya da çıktı yazma hatası durumunda EInvoiceExceptionKaynak dosya olduğu gibi bırakılır
FacturXEmbedderOptions::default()/AFRelationship /Alternative, dosya adı factur-x.xml, tür INVOICE, sürüm 1.0selfFırlatmazVarsayılanlar Alman zorunluluğunu karşılar ve Fransa’da kabul edilir kalır
FacturXEmbedderOptions::withRelationship() / ::withFilename()stringGeçersiz kılma uygulanmış bir kopya döndürürselfKabul kümelerinin dışında InvalidArgumentExceptionİlişkiler: Source, Data, Alternative; dosya adları zugferd-invoice.xml ve xrechnung.xml’i içerir
FacturXEmbedderOptions::withDocumentType()string $documentTypeXMP belge türü geçersiz kılması uygulanmış bir kopya döndürürselfFırlatmazDeğerler savunmacı biçimde numaralandırılmaz
FacturXContractEmbedder::embed()string $pdfBytes, string $xmlPayload, EmbedderOptions $optionsKısa ömürlü geçici dosyalar aracılığıyla FacturXEmbedder üzerinde bayt-giriş, bayt-çıkış bağdaştırıcısıstringEInvoiceException; XRECHNUNG profili yalnızca Enterprise olduğu için reddedilirKatmanlar arası EmbedderInterface uygulaması
C2paManifestEmbedder::embed()string $pdfBytes, ManifestStore $storeDeponun bayt serileştirmesini profil konumuna gömerstringHerhangi bir gömme hatasında C2paExceptionDondurulmuş SPI arabirimi; yalnızca bayt, G/Ç yok
C2paManifestEmbedder::extract()string $pdfBytesGömülü bir depoyu sertleştirilmiş JUMBF ayrıştırıcısı aracılığıyla ayrıştırırManifestStore|nullBir depo mevcut olduğunda ancak bir sertleştirme sınırını aştığında C2paException alt sınıfıNull yokluğu belirtir; yokluk asla fırlatmaz
ManifestStore::fromBoxes() / ::empty()list<JumbfBox> / —Değişmez depo değer nesnesini oluştururselfFırlatmazKutu sırası, gidiş-dönüş eşitliği için taşıyıcıdır
ManifestStore::toBytes() / ::isEmpty() / ::size()Kök kutuları serileştirir; boş depo boş bir dizeye serileştirilirstring / bool / intFırlatmaz
JumbfBoxParser::parse()string $bytesKök düzeyindeki JUMBF kutularını katı sınırlar altında ayrıştırırlist<JumbfBox>MalformedJumbfException, JumbfBombException, JumbfCycleDetectedException, JumbfDepthExceededExceptionSınırlar: derinlik 8, kutu başına 64 MiB, toplam 128 MiB, MAX_CHILDREN_PER_SUPERBOX 4096
JumbfBox::superbox() / ::leaf()string $tbox, …Doğrulanmış bir kutu oluşturur; toBytes() ayrıştırıcı aracılığıyla gidiş-dönüş yaparselfTBox tam olarak 4 bayt olmadığında MalformedJumbfException
C2paCapabilityStatus::current() / ::summary()C2PA yetenek olgunluğunu raporlar, şu anda preview-draftself / stringFırlatmazMakine tarafından denetlenebilir önizleme işaretçisi
Feature::PREVIEW_C2PA_DRAFT->isEnabled()Her çağrıda süreç ortamını okur; yalnızca sabit '1' etkinleştirirboolFırlatmazOrtam değişkeni NEXTPDF_FEATURE_PREVIEW_C2PA_DRAFT
ExperimentalC2paEmbedder::buildManifestStore()string $sourceBytes, string $producerBir SHA-256 karma bağlama iddia beyanıyla taslağa sabitlenmiş bir bildiri deposu oluştururManifestStoreÖnizleme bayrağı kapalıyken kurucu LogicException fırlatırÖnizleme; tel biçimi bir taslak anlık görüntüsüne sabitlenir; iddia imzası yayılmaz

Giriş noktası imzaları, kelimesi kelimesine:

public static function default(?LoggerInterface $logger = null): self
public function withStrictUa2(bool $enabled): self
public function isStrictUa2(): bool
public function validate(string $pdfPath): EInvoiceValidationResult
public function embed(
string $sourcePdfPath,
string $xml,
EInvoiceProfile $profile,
string $outputPdfPath,
?FacturXEmbedderOptions $options = null,
): void
public function embed(string $pdfBytes, ManifestStore $store): string
public function extract(string $pdfBytes): ?ManifestStore

Dil etiketi raporlama. LangComplianceReporter, PDF/UA-2 dil etiketi olayı başına bir yapılandırılmış JSON kaydı yayar. Her kayıt; sabit olay ayırıcısını, bir önem derecesini (gevşek modda ret için warn, sıkı modda ret için error), kusurlu etiketi kelimesi kelimesine, makine tarafından okunabilen bir nedeni, ayrıştırılmış etiket bileşenlerini (veya etiket RFC 5646 biçim dilbilgisinde başarısız olduğunda null), bir ISO 14289-2 §8.4.4 kural referansını ve mikrosaniyeli bir UTC zaman damgasını taşır. JSON, PSR-3 mesaj gövdesi olarak taşınır; aşağı akış alıcıları mesaj alanını doğrudan ayrıştırır. ConformancePolicy, Core uygunluk politikası üzerindeki Premium cephesidir. Varsayılanı, sıkı UA-2 dil işlemeyi uygular ve /Lang’a ulaşan hatalı biçimlendirilmiş veya kayıtlı olmayan bir etiketi reddeder. Devre dışı bırakma yardımcısı withStrictUa2(false), eski gevşek davranışa döner ve etkin değer gerçekten değiştiğinde bir PSR-3 bildirimi günlüğe kaydeder. NextPDF, o yardımcıyı v5.0’dan beri 6.0.0 kaldırma hedefiyle deprecated olarak işaretler. Geçiş yapmak için: külliyatı hatalı biçimlendirilmiş /Lang değerleri açısından composer pdfua2:audit-lang-tags <pdf-or-dir> ile denetleyin, bunları düzeltin, ardından devre dışı bırakma çağrısını kaldırın.

E-fatura işleme. EInvoiceValidator, hibrit PDF doğrulaması için dondurulmuş SPI sözleşmesidir: PDF/A-3 sarmalayıcı denetimi, /AF ek çıkarma, BT-24 belirtim tanımlayıcısından profil algılama, EN 16931 iş kuralı motoru ve bir Schematron geçişi. İyi biçimlendirilmiş, Factur-X olmayan bir PDF, fırlatmak yerine EInvoiceValidationResult::notAnEInvoice() döndürür; yalnızca G/Ç hataları, hatalı biçimlendirilmiş PDF yapısı veya araç çökmeleri bir EInvoiceException alt sınıfı yükseltir. EInvoiceXmlValidator, somut katmanlar arası XML doğrulayıcısıdır: girişi Core XmlGuard aracılığıyla kapılar, yapısal ön denetimi ve derin EN 16931 anlamsal kural külliyatını çalıştırır ve kapalı biçimde başarısız olur — motor hataları asla sessiz geçişler olarak değil, hata bulguları olarak ortaya çıkar. FacturXEmbedder, bir PDF/A kaynağını hibrit bir PDF/A-3’e dönüştürür: bir gömülü dosya akışı, yapılandırılabilir bir /AFRelationship’e sahip bir dosya belirtimi ve bir Factur-X XMP uzantı paketi ekler, ardından klasik çapraz başvuru tablosunu yeniden yazar. Hem katalog /AF dizisi hem de /Names /EmbeddedFiles ad ağacı eke başvurur, böylece eski ZUGFeRD okuyucuları onu çözümler.

Köken. C2paManifestEmbedder, çağıran tarafından sağlanan bir C2PA bildiri deposunu bir PDF bayt dizesine gömer veya birini çıkarır. ManifestStore, sınırı geçen değişmez değer nesnesidir. Bu yüzey yalnızca bayt tabanlıdır ve satıcıdan bağımsızdır: iddiaları sentezlemez, URI referanslarını içe almaz veya karma bağlamalarını çözümlemez ve hiçbir ağ veya dosya sistemi G/Ç’si gerçekleştirmez. extract(), bir kaçırmada null döndürür ve deposuz PDF’lerde ucuzdur. Null olmayan her çıkarma, JumbfBoxParser sertleştirme sınırlarını zaten geçmiştir.

Bu modül denetlediğini raporlar. Bir belgeyi sertifikalandırmaz, onu hukuken bağlayıcı kılmaz veya herhangi bir çıktının bir yönetmeliği karşıladığını garanti etmez. E-fatura doğrulayıcısı bir vergi dairesi doğrulayıcısı değildir ve ulusal genişletmeleri hariç tutar (örneğin İtalyan SDI, Fransız Chorus Pro, Alman XRechnung). EN 16931-1’de belirtildiği gibi, fatura düzenleyen, ilgili mevzuatın kurallarını karşılamaktan sorumlu kalır. Bir standart için destek, ona uygunluk değildir. Düzenleyici yeterlilik için uyumluluk ekibinize danışın.

  • İyi biçimlendirilmiş, Factur-X olmayan bir PDF, bir “e-fatura değil” sonucu döndürür; fırlatmaz.
  • Boş bir iş kuralı ihlali listesi, tek başına belgenin geçerli olduğu anlamına gelmez; sarmalayıcı ve ek denetimleri de geçerlidir.
  • FacturXEmbedder, sıkıştırılmış nesne akışları (/Type /ObjStm) veya çapraz başvuru akışları (/Type /XRef, hibrit /XRefStm) kullanan kaynaklarda kapalı biçimde başarısız olur. Bu tür kaynakları önce klasik bir çapraz başvuru tablosuyla yeniden kaydedin.
  • XML yükleri Core XmlGuard aracılığıyla kapılanır: DOCTYPE veya varlık bildirimleri, aşırı büyük giriş ve geçersiz UTF-8, gömme yolunda bir EInvoiceException ile ya da doğrulayıcı yolunda başarısız bir sonuçla reddedilir.
  • FacturXContractEmbedder, XRECHNUNG profilini sessizce alt sürüme düşürmek yerine yüksek sesle reddeder; XRechnung üretimi bir Enterprise yeteneğidir.
  • C2paManifestEmbedder::extract(), yokluğu (null), hatalı biçimlendirmeden (ihlal edilen değişmezi adlandıran C2paException alt sınıfı: hatalı biçimlendirilmiş yapı, boyut veya sayı bombası, ofset döngüsü, iç içe geçme derinliği) ayırt eder.
  • ExperimentalC2paEmbedder yapımı, önizleme ortam bayrağı '1'’e eşit olmadıkça bir LogicException fırlatır. Tel biçimi bir C2PA taslak anlık görüntüsüne sabitlenir ve haber verilmeden değişebilir; hiçbir iddia imzası yaymaz. Bu yetenek, C2PA PDF profili dondurulana kadar önizleme olarak kalır.
  • Sıkı UA-2 gevşek devre dışı bırakma deprecated’dir; sıkı varsayılana geçin (bkz. Davranış sözleşmesi).
  • Bu modül kriptografik imzalama yapmaz. C2PA iddia imzalama ve anahtar muhafazası kapsam dışıdır; FIPS modu imzalama davranışı için Security modülüne bakın.
DavranışBaşvuruDurum
Doğal dil bildirimi (/Lang)ISO 14289-2:2024 §8.4.4Denetlendi / raporlandı
Çekirdek fatura anlamsal modeliEN 16931-1:2026Denetlendi (düzenleyen sorumlu kalır)
İlişkili dosyalar / gömülü dosya akışlarıISO 32000-2:2020 §14.13.2Üretildi (/AF, /EF, /Params)
Ek ilişkisi ve kapsayıcı kurallarıFactur-X 1.08 §3.1, §6.2Üretildi / denetlendi (varsayılan /AFRelationship /Alternative)
C2PA bildiri deposu / JUMBFC2PA 2.1 §11.1Gömme / çıkarma desteklenir; iddia sentezi önizleme

Bu, modülün karşı geliştirildiği belirtimleri ve neyi denetlediğini ya da ürettiğini kaydeder. Bir sertifikasyon veya düzenleyici yeterlilik beyanı değildir. NextPDF, bu standartlar için hiçbir sertifikasyona sahip değildir.

  • Raportörün kayıt biçimi kararlı bir sözleşmedir; aşağı akış uyarı kuralları sabit olay ayırıcısına sabitlenebilir.
  • Sıkı UA-2’yi devre dışı bırakmak, yalnızca etkin değer değiştiğinde telemetride görünür bir kullanımdan kaldırma bildirimi yayar; geçerli değeri yeniden onaylamak sessizdir.
  • Factur-X gömücüsü, kaynak baytları kelimesi kelimesine korur ve yeni nesneler ekler; PDF/A-3 uygunluğunu korumayı amaçlar ancak yeniden doğrulamaz. Kesin doğrulama için çıktıyı harici bir PDF/A doğrulayıcısından geçirin.
  • C2PA yüzeyi beş değişmezi dondurur: üçüncü taraf içe aktarma yok, yalnızca bayt sözleşmesi, G/Ç yok, kaçırmada-null çıkarma ve kararlı katmanda iddia sentezi yok.
  • JumbfBoxParser sınırları genel sabitlerdir; sınırları yeniden türetmek yerine kabul ettiğiniz girişleri bunlara göre boyutlandırın.

Bu 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ı, çalıştırma kılavuzu dosya adları ve bilet önekleri kapsam dışıdır.