İçeriğe geç

Arşivleme ve PDF/A

Spec: ISO 19005-4:2020, PDF/A-4 Spec: ISO 19005-2, PDF/A-2 Evidence: Standard-backed

PDF/A, bir belgenin onlarca yıl sonra, henüz var olmayan yazılımlarda da okunabilir kalması ve aslına sadık görünmesi gerektiğinde başvurduğunuz biçimdir. Bu sayfa bu garantinin gerçekte neyi kapsadığını, NextPDF’in uyumlu bir dosyayı nasıl ürettiğini ve ekipleri şaşırtan noktayı açıklar: PDF/A üretmek ile kanıtlamak (bir dosyanın PDF/A olduğunu) iki ayrı iştir. İkincisi hâlâ sizin sorumluluğunuzdadır.

Arşivleme yükümlülükleri hataları sessizce affetmez. Dosya bugün düzgün görünür, bu yüzden arşive konur. Hata — gömülmemiş bir yazı tipi, aygıta bağlı bir renk, şifrelenmiş bir trailer — yıllar sonra, özgün ortam artık yokken ve belgenin nasıl görünmesi gerektiğini kimse yeniden oluşturamazken ortaya çıkar. O noktada maliyet yeniden işleme değildir; artık güvenemeyeceğiniz bir kayıttır.

PDF/A tam olarak bu tür hataları ortadan kaldırmak için vardır. Ancak “bir PDF/A kitaplığı kullandık” demek, “bu dosya uyumludur” demekle aynı şey değildir. İkisini birbirine karıştırmak, arşivlerin yalnızca korunmuş gibi görünen belgelerle dolmasının yoludur.

  • PDF/A’nın amacı, zaman içinde aslına sadık, kendi kendine yeten ve aygıttan bağımsız yeniden üretim sağlamaktır — bir belgenin statik görsel görünümünü, onu üreten araçlardan bağımsız olarak korur (ISO 19005-2 Giriş).
  • Bu, somut kısıtlamalar gerektirir: tüm yazı tiplerinin gömülü olması, aygıttan bağımsız renk (doğrudan veya bir output intent aracılığıyla; ISO 19005-4 §6.2.4.1) ve trailer içinde şifreleme olmaması.
  • NextPDF, PDF/A biçimini, sessizce uyumlu olmayan bir dosya üretmek yerine uyumsuz işlemleri reddeden açık ve isteğe bağlı bir kip aracılığıyla üretir.
  • Uygunluk, üreticinin iddiasıyla değil, bir denetleme aracının kararıyla belirlenir. Standardın başarısı bile çevredeki arşivleme ortamına ve prosedürlere bağlıdır (ISO 19005-4 Giriş). Çıktıyı doğrulamak, hâlâ yerine getirmeniz gereken bir adımdır.

NextPDF, PDF/A biçimini sonradan uygulanan bir işleme filtresi olarak değil, belgenin içinde bulunduğu bir kip olarak ele alır. Bu kip isteğe bağlıdır. Etkinleştirildiğinde, belgeyi uygunluğu bozacak işlemlere karşı etkin biçimde korur. Tasarım ilkesi, hızlı hata vermedir (fail-fast). Şifrelenmiş bir PDF/A isteğini açıkça reddetmek, arşivlenebilir görünen ama öyle olmayan bir dosyayı geri vermekten daha iyidir.

Senaryonun dört aşaması vardır. Üçüncüsü, ekiplerin en sık atladığı aşamadır.

  1. Compose for permanence Embed every font, use device-independent colour or an output intent, and avoid features the chosen PDF/A part forbids.
  2. Enable the PDF/A mode Opt in explicitly to the target conformance level. The mode now guards the document against incompatible operations.
  3. Validate independently Run a conformance checker. A passing report — not the producing library — is the evidence the archive needs.
  4. Preserve with procedure Store under records-management policy. The standard itself notes archival success depends on the environment, not the file alone.
Arşivleme senaryosu baştan sona: motor uyumlu bir aday üretir ve uygunluğu bozan işlemleri reddeder; bir arşiv için gerçekten önemli olan kararı bağımsız bir doğrulayıcı verir.

Bu isteğe bağlı seçim bir bayrak değil, gerçek bir korumadır. PDF/A kipi etkinken uyumsuz bir işlem denendiğinde — AES-GCM’yi veya standart şifreleme işleyicisini etkinleştirmek gibi — motor, türlenmiş bir uyumsuzluk hatası yükseltir. Koruma her iki sırada da çalışır: önce PDF/A etkinleştirilip sonra şifreleme istenebilir veya önce şifreleme istenip sonra PDF/A etkinleştirilebilir. Her iki durumda da sonuç açık bir reddetmedir. ISO 19005, uyumlu bir dosyanın trailer’ında Encrypt anahtarını yasaklar ve motor bunu tavsiye niteliğinde değil, bağlayıcı olarak ele alır.

Kip ayrıca kendi durumunu da tutarlı tutar. PDF/A’yı belirli bir bölüm için etkinleştirmek (örneğin PDF/A-4 yerine bayt düzeyinde aslına sadık bir PDF/A-3 düzeyi), belgenin uygunluk ayırt edicisini buna uyacak şekilde ayarlar. Bölüme bağlı yazar tarafı geçitleri böylece eski bir varsayılanı değil, doğru değeri görür. Bir doğrulayıcının dosyayı geçirip geçirmeyeceğine işte bu türden bir iç tutarlılık karar verir.

Bu sayfanın tamamı standart dayanaklıdır. Evidence: Standard-backed

Bu amaç standart tarafından belirlenmiştir. Spec: ISO 19005-2 PDF/A’nın birincil amacının, elektronik belgelerin statik görsel görünümlerini kullanılan araç ve sistemlerden bağımsız olarak zaman içinde korunabilecek biçimde temsil eden bir mekanizma olduğunu belirtir. Kısıtlamalar bundan doğar: Spec: ISO 19005-4:2020, §6.2.4.1 rengin aygıttan bağımsız biçimde, doğrudan veya PDF/A output intent aracılığıyla belirtilmesini gerektirir. Yazı tipi gereksinimi temel biçim tarafından da pekiştirilir — Spec: ISO 32000-2:2020, §9 en öngörülebilir ve güvenilir işlemenin, tüm yazı tipleri gömüldüğünde gerçekleştiğini belirtir; bir arşivin vazgeçemeyeceği özellik de tam olarak budur.

Bu sınır da yalnızca metinsel bir uyarı değildir; standardın içindedir. Spec: ISO 19005-4:2020 Giriş bölümünde, arşivleme amaçlı başarılı uygulamanın kuruluşun arşivleme ortamına, kayıt yönetimi politikalarına ve ek kalıcılık koşullarına bağlı olduğunu belirtir. Uygunluk, standardın normatif gereksinimlerine göre bir denetleme aracı tarafından değerlendirilir — üretici tarafından bildirilmez.

Motorun davranışı kod dayanaklıdır: Evidence: Code-backed Document::enablePdfA(), açık ve isteğe bağlı bir seçimdir; şifreleme ile PDF/A herhangi bir sırada birleştirildiğinde türlenmiş bir uyumsuzluk hatası yükseltir ve belgenin uygunluk ayırt edicisini seçilen bölümle uyumlu (byte-identical değil) tutar.

Aşağıdaki kod, birleşim noktasındaki koruma davranışını gösterir. PDF/A kipinin kendisi bir Premium katmanı yeteneğidir. Uygunluk denetimi ise ayrı, bağımsız bir adımdır.

<?php
declare(strict_types=1);
use NextPDF\Contracts\PdfDocumentInterface;
use NextPDF\Security\Exception\IncompatiblePdfAModeException;
/**
* Produce an archival candidate, then prove it independently.
*
* The engine refuses conformance-breaking combinations; it does NOT
* certify the result. A validator does that.
*
* @param PdfDocumentInterface $doc A document with all fonts embedded
* @param object $pdfaLevel The target PDF/A version (Premium enum)
*
* @return string The archival candidate's bytes — not yet a verified PDF/A
*/
function buildArchivalCandidate(
PdfDocumentInterface $doc,
object $pdfaLevel,
): string {
try {
// Opt in explicitly. From here the mode guards the document.
$doc->enablePdfA($pdfaLevel);
} catch (IncompatiblePdfAModeException $e) {
// e.g. encryption was already requested — refused, not silently
// downgraded into a non-conforming "archival" file.
throw new \RuntimeException(
'PDF/A and encryption are mutually exclusive for a conforming '
. 'file; resolve before archiving.',
previous: $e,
);
}
$bytes = $doc->getPdfData();
// The step teams skip: this is a CANDIDATE. Run an independent
// conformance validator before treating it as a preserved record.
return $bytes;
}

Dönüş satırındaki yorum asıl dersi verir. İşlev adı bilerek aday der. Motor, uyumlu olması gereken bir şey üretti. “Olması gereken”i kanıta yalnızca bir denetleyici dönüştürür.

Tek bir yanlış anlama arşivleri korunmamış belgelerle doldurur: “kitaplık PDF/A diyor, dolayısıyla dosya PDF/A’dır.” Bu kararı vermek kitaplığın işi değildir. Bir üretici, uyumlu olması amaçlanan bir dosya üretebilir ve yine de normatif bir gereksinimi atlayabilir. Uygunluk, standarda göre bir doğrulama aracı tarafından belirlenir. Bir denetçinin veya gelecekteki bir okuyucunun dayandığı şey tam da bu belirlemedir. Üreten kitaplığın niyetini kanıt saymak temel hatadır.

İkinci ve daha incelikli tuzak: yalnızca PDF/A’nın belgeyi koruduğunu varsaymak. Standardın kendisi arşivleme başarısını çevredeki ortama ve prosedürlere bağlar. Disiplinsiz bir depoda duran uyumlu bir dosya yine de risk altındadır. Biçim gereklidir, ancak yeterli değildir.

  • NextPDF uyumlu bir aday üretir; uygunluğu onaylamaz. Bağımsız bir doğrulayıcı çalıştırın. Kanıt, üreten kitaplık değil, başarılı bir rapordur.
  • PDF/A uygunluk kipleri bir Premium katmanı yeteneğidir. Core, düz PDF 2.0 üretir ve uygulanabilir bir yükseltme yolu sunar. PDF/A garantisi sağlamaz. Aşağıdaki sınıra bakın.
  • Uyumlu bir dosya için PDF/A ile şifreleme birbirini dışlar. Motor, sessizce bozulmak yerine bu birleşimi her iki sırada da reddeder.
  • Motor, kendisine verilmeyen yazı tiplerini gömemez veya sizin sağladığınız aygıta bağlı rengi düzeltemez. Kalıcılık için oluşturmak — gömülü yazı tipleri, aygıttan bağımsız renk — bir girdi sorumluluğudur.
  • Arşivleme dayanıklılığı yalnızca dosyaya değil, sürece bağlıdır. ISO 19005, kurumsal saklamayı ve kayıt yönetimi prosedürlerini başarılı korumanın bir parçası kılar.
  • Bu sayfa standart dayanaklıdır ve Premium yüzeyinde davranış düzeyindedir. Herhangi bir sertifikasyon iddia etmez veya vermez.
PDF/A archival conformance — edition availability
Edition Availability
Core

Core yalnızca düz PDF 2.0 üretir. enablePdfA(), ticari pakete işaret eden uygulanabilir bir yükseltme hatası yükseltir. Yalnızca Core’a ait bir PDF/A garantisi yoktur.

Pro

PDF/A uygunluk kipleri (bayt düzeyinde aslına sadık PDF/A-3 düzeyleri ve PDF/A-4 dâhil) şifreleme uyumsuzluğu koruması ile birlikte kullanılabilir.

Enterprise

Yapısal bir PDF/A uygunluk politikası ve raporu ekler (yine de bir yapısal denetimdir, bir sertifikasyon değil — nihai belirleme bir doğrulayıcıya ve uyum ekibinize aittir).

  • Yazı tipleri: en zor kısım — doğru görünen bir yazı tipinin bile dosyayı neden uyumsuz veya aranamaz hâle getirebileceği.
  • Golden-file testing — sabitlenmiş referans çıktısının, arşivleme garantilerini sessizce bozan bayt kaymasını nasıl yakaladığı.
  • Faturalar ve e-faturalama — en yakın ilgili konu: hibrit bir fatura taşıyıcısı kendisi bir PDF/A dosyasıdır.
  • PDF/AISO 19005 ailesi: uzun vadeli koruma için kısıtlanmış bir PDF profili; bir belgenin statik görünümünü, üreten araçlardan bağımsız olarak zaman içinde yeniden üretmek üzere tasarlanmıştır.
  • Uygunluk düzeyi / bölümü — belirli PDF/A varyantı (örneğin PDF/A-2, PDF/A-3, PDF/A-4 ve alt düzeyleri); her biri hangi PDF özelliklerinin kullanılabileceğini kısıtlar.
  • Output intent — aygıta bağlı rengin aygıttan bağımsız olarak yorumlanmasını sağlayan, gömülü bir renk karakterizasyon profili.
  • Aygıttan bağımsız renk — işleme aygıtından bağımsız olarak tutarlı biçimde yeniden üretilecek şekilde belirtilen renk; bir PDF/A gereksinimidir.
  • Uygunluk denetleyicisi / doğrulayıcı — bir dosyayı standardın normatif gereksinimlerine karşı değerlendiren bağımsız yazılım; uygunluk kararının kaynağı.
  • Arşivleme adayı — uyumlu olmayı amaçlayarak üretilen, ancak bağımsız bir doğrulayıcı gerçekten uyumlu olduğunu onaylamadan önceki dosya.