Pro sürümkararlılık: Deneysel
C2PA önizleme yeteneği durumu
Bir bakışta
“Bir bakışta” başlıklı bölümÖnizleme yeteneği durumu. Asla GA değildir. Bu sayfa, C2PA yüzeyinin bir önizleme olarak bugün ne yaptığını belirtir. Bir uygunluk iddiası değildir, bir sertifikasyon değildir ve NextPDF’in C2PA-imzalı dosyalar ürettiğine dair bir ifade değildir. Yüzey bir önizlemedir ve asla genel kullanıma sunulmuş olarak tanımlanmaz.
NextPDF Pro, C2paCapabilityStatus aracılığıyla bir Content Credentials (C2PA)
önizleme yüzeyi açığa çıkarır. Bu sayfa, o yüzey için dürüst sınırdır: neyin her
zaman kullanılabilir olduğu, neyin katılımlı bir taslak bayrağının arkasında
kaldığı ve neden hiçbir nihai durum iddiasında bulunulmadığı.
İki katman: kararlı dikiş ve bayraklı sentez
“İki katman: kararlı dikiş ve bayraklı sentez” başlıklı bölümYüzeyin iki net biçimde ayrılmış katmanı vardır ve ayrım, sınırın tüm amacıdır:
- Her zaman kullanılabilir — kararlı dikiş.
ManifestStoreveC2paManifestEmbedderarabirimi, dondurulmuş, satıcıdan bağımsız bir dikiştir. Bir Manifest Store’u her iki yönde de taşıyabilirler:embed(), çağıranın sağladığı bir Store’un baytlarını bir PDF’e yazar veextract(), bir Store’u geri ayrıştırır (hiçbiri bulunmadığındanulldöndürür). Bu dikiş hiçbir iddia sentezi yapmaz — asla kendisi savlar ya da iddialar oluşturmaz; çağıranın zaten elinde tuttuğu opak birManifestStore’u taşır. - Katılımlı bayrağın arkasında — iddia sentezi. Bir Manifest Store’u
gerçekten oluşturma (iddiayı ve içerik-özet savını bir araya getirme) yalnızca
ExperimentalC2paEmbedderiçinde, varsayılan olarak kapalı bir env bayrağının arkasında bulunur. Bu, taslak biçimli, haber vermeden değişebilen parçadır.
Yani kesin ifade şudur: ayıklama ve bayt-taşıma her zaman erişilebilirdir; manifest içeriğinin sentezi yalnızca önizleme bayrağı açıkça etkinleştirildiğinde erişilebilirdir.
Neden bu şekilde çalışır
“Neden bu şekilde çalışır” başlıklı bölümYük taşıyan karar, her şeyi yapan tek bir gömücü değil, kararlı bir taşıma
dikişini uçucu sentez yolundan ayırır. C2PA-PDF profili hâlâ dış bir çalışma
grubuna aittir ve dondurulmuş değildir. Onun Claim Signature kutusu (c2cs, bir
COSE_Sign1 yapısı) sürüklenmeye en yatkın parçadır. Bu nedenle sentez o kutuyu
atlar ve varsayılan olarak kapalı bir bayrağın arkasında bulunur; ayıklama-ve-taşıma
ise dondurulmamış hiçbir alana bağlı değildir ve herkes için erişilebilir kalır.
Durum nesnesi, generallyAvailable ve conformanceClaimed sabit kodlu false
olacak biçimde olgunluğu veri olarak açığa çıkarır; böylece çağıranlar üretici
niyetini doğrulanmış bir sonuçla karıştıramaz. Bu ayrım, ekiplerin kalıcı dikişi
şimdi benimsemesine ve imzalı bir adaptörü daha sonra eklemesine olanak tanır;
NextPDF’in henüz tutamayacağı hiçbir tel biçimi sözü verilmeden.
Tasarım arka planı: Bir denetçiye verebileceğiniz uygunluk.
Önizleme yeteneği durumu
“Önizleme yeteneği durumu” başlıklı bölümC2paCapabilityStatus, yüzeyin durumunu düz yazı olarak değil, veri olarak açıkça
bildirir. generallyAvailable ve conformanceClaimed özellikleri sabit kodlu
false’tur ve bayraktan bağımsız olarak false kalır; önizlemeyi etkinleştirmek
yalnızca previewEnabled özelliğini değiştirir. maturity belirteci, iddiasız
preview-draft etiketidir ve specPin, sabitlenmiş taslak işlemesini kaydeder.
Bir çağıran “imzalı ve doğrulanmış” değil, “preview” okur.
use NextPDF\Pro\Compliance\C2pa\C2paCapabilityStatus;
// Reads the env flag live; performs no I/O.$status = C2paCapabilityStatus::current();
$status->previewEnabled; // bool — true only if the opt-in env flag is set$status->generallyAvailable; // false (always)$status->conformanceClaimed; // false (always)$status->maturity; // 'preview-draft'$status->specPin; // '4e2afed8' (pinned draft commit, short)$status->envGate; // 'NEXTPDF_FEATURE_PREVIEW_C2PA_DRAFT'
echo $status->summary();// "C2PA preview-draft surface is present but switched off;// the C2PA-PDF profile is not yet final."C2PA belirtimi, dış bir çalışma grubu tarafından sürdürülür ve NextPDF’in hedefleyeceği profil dondurulmuş değildir. Profil dondurulmuş olmadığı için önizleme, kasıtlı olarak hiçbir nihai durum iddiasında bulunmaz. Çalışma grubu profili kararlı hâle geldiğinde değişecek olan, yüzeyin pazarlaması değil durumudur.
Önizlemeyi etkinleştirme
“Önizlemeyi etkinleştirme” başlıklı bölümKatılım, tek bir süreç-ortam değişkenidir,
NEXTPDF_FEATURE_PREVIEW_C2PA_DRAFT. Canlı okunur ve "1" dizesine karşı
katı biçimde karşılaştırılır — başka herhangi bir değer (0, true, yes,
boş dize ya da yokluk dahil) KAPALI olarak ele alınır. Tek başına bir Pro lisansı
onu etkinleştirmez; operatör bilinçli olarak katılmalıdır.
Hızlı başlangıç
“Hızlı başlangıç” başlıklı bölüm// Opt in for the current process BEFORE constructing the embedder.putenv('NEXTPDF_FEATURE_PREVIEW_C2PA_DRAFT=1');
use NextPDF\Pro\Compliance\C2pa\Experimental\ExperimentalC2paEmbedder;
$embedder = new ExperimentalC2paEmbedder();
// Synthesise a draft-shaped Manifest Store binding the host PDF by SHA-256.$pdfBytes = file_get_contents('input.pdf');$store = $embedder->buildManifestStore($pdfBytes, 'my-app/1.0.0');
// The result is an opaque ManifestStore; $store->toBytes() is its serialisation.Üretim tarzı kullanım
“Üretim tarzı kullanım” başlıklı bölümGerçek bir dağıtımda bayrağı başlangıçta ayarlayın (çalışma zamanında putenv()
ile değil), açık bir insan katılımına bağlayın ve deneysel gömücüye dokunmadan
önce yetenek durumunu denetleyin; böylece taslak yola yalnızca bilerek ulaşılır.
use NextPDF\Pro\Compliance\C2pa\C2paCapabilityStatus;use NextPDF\Pro\Compliance\C2pa\Experimental\ExperimentalC2paEmbedder;
// Set NEXTPDF_FEATURE_PREVIEW_C2PA_DRAFT=1 in the environment at process boot.
$status = C2paCapabilityStatus::current();
if (!$status->previewEnabled) { // Flag off: do NOT instantiate the experimental embedder — its // constructor would throw. Fall back to your non-preview path. return;}
// Surface the draft pin to the operator. The bytes are transient:// re-embed once a stable adapter ships. Run `composer c2pa:draft-status`// in CI to fail the build if the pinned snapshot goes stale.$pinnedDraft = ExperimentalC2paEmbedder::SPEC_PIN_SHA; // 4e2afed8…$pinnedDate = ExperimentalC2paEmbedder::SPEC_PIN_DATE; // 2026-04-26
$embedder = new ExperimentalC2paEmbedder();$store = $embedder->buildManifestStore($pdfBytes, 'my-app/1.0.0');Bayrak kapalıyken hata durumunda kapalı
“Bayrak kapalıyken hata durumunda kapalı” başlıklı bölümSessiz bir geri dönüş yoktur. ExperimentalC2paEmbedder,
NEXTPDF_FEATURE_PREVIEW_C2PA_DRAFT tam olarak "1" değilken oluşturulursa,
yapıcı, iletisinde bayrağı, env değişkenini ve sabitlenmiş taslak SHA/tarihini
adlandıran bir LogicException fırlatır. Bir çağıran, yalnızca bir Pro lisansı
tutarak yanlışlıkla taslak biçimli baytları bir üretim PDF’ine serileştiremez.
Kararlı ayıklama yolu da hata durumunda kapalıdır, ama farklı biçimde:
extract(), hiçbir Manifest Store yokken null döndürür (yaygın durum, ucuz ve
istisnasız tutulur) ve bir Store varken ama ayrıştırıcının düşmana-karşı-sertleştirme
değişmezlerini (derinlik, döngü, boyut, sayım) çiğnediğinde bir C2paException
alt sınıfı — JumbfBombException, JumbfCycleDetectedException,
JumbfDepthExceededException ya da MalformedJumbfException — fırlatır. Bunlar
asla sessizce yutulmaz.
Dürüst sınır
“Dürüst sınır” başlıklı bölümAşağıdaki dil, politika gereği bu yüzey için kullanılmaz ve ondan türetilen hiçbir belgede, kullanıcı arayüzünde ya da pazarlamada görünmemelidir:
- “C2PA uygun” ya da “C2PA uyumlu”.
- “C2PA sertifikalı”.
- Tamamlanmış, öne sürülen bir yetenek olarak “C2PA imzalı”.
- “GA” / “genel kullanıma sunulmuş”.
Yüzeyin dürüstçe ne olduğu: bir C2PA Manifest Store’u ayrıştırabilen (extract) ve
taşıyabilen (embed) kararlı bir dikiş, artı taslak biçimli manifest içeriğini
sentezleyen varsayılan olarak kapalı bir deneysel gömücü ve kendi önizleme
durumunu bildiren bir durum nesnesi. Ne olmadığı: onaylanmış, doğrulanabilir C2PA
kimlik bilgilerinin bir üreticisi. Özellikle, deneysel gömücü, belirtimin sürüklenmeye
en yatkın parçası olan COSE_Sign1 bölümünü — Claim Signature (c2cs) kutusunu —
kasıtlı olarak atlar; böylece bayrak açıkken bile çıktı imzasız, taslak biçimli
baytlardır. Çalışma grubu profili dondurulmuş değildir; sınır asıl meseledir.
Deneysel gömücünün yaydığı tel biçimi, c2pa-org/specifications’in bir taslak
işlemesine sabitlenmiştir (SPEC_PIN_SHA = 4e2afed8…, tarihli 2026-04-26);
çağıranların bekledikleri SHA’yı sabitleyebilmesi için herkese açık bir sabit
olarak açığa çıkarılmıştır.
API yüzeyi
“API yüzeyi” başlıklı bölüm| Simge | Rol |
|---|---|
C2paCapabilityStatus | Dürüst, makine-okunabilir durum değer nesnesi. current() env bayrağını canlı okur; generallyAvailable / conformanceClaimed her zaman false’tur; summary() hiçbir GA/uygunluk iddiası taşımaz. |
ManifestStore | Değişmez Manifest Store değer nesnesi. Kararlı dikiş türü; baytları her iki yönde taşır. İddia düzeyinde erişimci yok. Her zaman kullanılabilir. |
C2paManifestEmbedder | Dondurulmuş, satıcıdan bağımsız SPI: embed() / extract(). İddia sentezi yok. extract(), bulunamadığında null döndürür. Her zaman kullanılabilir. |
ExperimentalC2paEmbedder | Varsayılan olarak kapalı sentez. buildManifestStore() bir taslak manifest bir araya getirir; env bayrağı tam olarak "1" değilse yapıcı LogicException fırlatır. |
Feature::PREVIEW_C2PA_DRAFT | Kapsamlı katılımlı bayrak. ENV_PREVIEW_C2PA_DRAFT = NEXTPDF_FEATURE_PREVIEW_C2PA_DRAFT; isEnabled() katı === '1'’dir. |
Sınır durumları ve dikkat edilmesi gerekenler
“Sınır durumları ve dikkat edilmesi gerekenler” başlıklı bölüm- Varsayılan olarak kapalı, katı katılım. Sentez,
NEXTPDF_FEATURE_PREVIEW_C2PA_DRAFTarkasındadır, katı biçimde=== '1'olarak okunur. Başka her şey KAPALIdır; tek başına bir Pro lisansı onu etkinleştirmez. - Yapım sırasında hata durumunda kapalı.
new ExperimentalC2paEmbedder(), bayrak kapalıykenLogicExceptionfırlatır — asla sessiz bir işlemsizlik değil. - Çıktı imzasız ve geçicidir. Bayrak açıkken bile Claim Signature kutusu atlanır; baytları taslak biçimli olarak ele alın ve kararlı bir adaptör sevk edildiğinde yeniden gömün.
- Sabit eskime denetimi. Sabitlenmiş taslak anlık görüntüsünün ne zaman
eskidiğini saptamak için CI’da
composer c2pa:draft-status(taze çıkış 0 / yumuşak uyarı 1 / katı başarısızlık 2) çalıştırın. - Uygunluk hükmü yok. Durum nesnesi, bir uygunluk sonucunu değil, önizleme durumunu bildirir. Herhangi bir uygunluk tartışması için dış bir doğrulayıcı ve dondurulmuş bir çalışma grubu profili ön koşul olurdu ve ikisi de varsayılmaz.
- Dil disiplini. Çıktıyı “C2PA imzalı”, “uygun”, “uyumlu”, “sertifikalı” ya da “GA” olarak nitelemeyin. “Önizleme yeteneği durumu” kullanın.
Güvenlik notları
“Güvenlik notları” başlıklı bölümBir önizleme yüzeyi bir güvenlik denetimi değildir. Bir taslak Manifest Store’u taşımak ya da sentezlemek, bir onayı üretmek ya da doğrulamakla aynı şey değildir — ve deneysel gömücü Claim Signature kutusunu tümüyle atlar; bu nedenle çıktısı yapısı gereği imzasızdır. Üretimde köken güvencesi için bu önizlemeye güvenmeyin; bir kimlik bilgisinin geçerli olduğunu ya da bir dosyanın imzalı olduğunu öne sürmez.
Uygunluk
“Uygunluk” başlıklı bölümBu yüzey hiçbir uygunluk iddiasında bulunmaz. C2PA profili, dış bir çalışma grubu tarafından sürdürülür ve dondurulmuş değildir; bu nedenle NextPDF, uygunluk ya da sertifikasyon değil, bir önizleme yeteneği durumu ve bir taslak/çalışma grubu sınırı belirtir. Hiçbir standart metin olduğu gibi aktarılmaz.
Yayın sınırı
“Yayın 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. Dahili ad alanı yolları, yardımcı sınıflar, mekanizma tabloları, runbook dosya adları ve bilet önekleri kapsam dışıdır.
Ayrıca bakınız
“Ayrıca bakınız” başlıklı bölüm- C2PA önizleme — Derin Referans — bu yüzey için tam API referansı.
- Pro güvenliği
- Core imzalama
- Uygunluk açılış sayfası
- Kuantum sonrası kriptografi önizleme yeteneği durumu