THotPDF.RepairPDFUA2Structure Method

Memperbaiki cacat namespace, atribut, struktural, dan aksesibilitas PDF/UA-2 yang dapat dipulihkan di dalam transaksi grafik copy-on-write dan memvalidasi grafik kandidat sebelum komit

Deklarasi

function RepairPDFUA2Structure(
  const Options: THPDFUA2RepairOptions;
  out Report: THPDFUA2RepairReport;
  out Issues: THPDFUA2ValidationIssues): boolean; overload;

function RepairPDFUA2Structure(
  const Options: THPDFUA2RepairOptions;
  out Report: THPDFUA2RepairReport;
  out Issues: THPDFUA2ValidationIssues;
  out Findings: THPDFComplianceFindings): boolean; overload;

Unit

HPDFDoc

Opsi perbaikan

Mulai dengan THPDFUA2RepairOptions.Default dan timpa hanya keputusan kebijakan yang diperlukan oleh alur kerja input

FieldTujuan
NormalizeDuplicateNamespacesMembangun ulang StructTreeRoot/Namespaces dengan satu kamus tidak langsung kanonik per URI dan menolak peta peran yang bertentangan
RegisterReferencedNamespacesMendaftarkan kamus namespace valid yang direferensikan oleh elemen struktur, atribut, atau peta peran yang sadar namespace
RepairStandardStructureNamespacesMenetapkan namespace PDF 2.0 ke peran standar ketika namespace hilang atau tidak valid dan selalu menormalkan Document tingkat atas
RepairAttributeNamespacesMengkanonikalkan referensi namespace atribut dan menghapus entri namespace tidak valid dari pemilik standar
RepairAttributeRevisionsMenormalkan nomor revisi negatif atau pecahan dan menghapus entri revisi yatim dari larik atribut
RepairListSemanticsMenormalkan penomoran, flag kelanjutan, jenis kelanjutan tidak valid, dan satu keterangan yang salah tempat tanpa menciptakan konten daftar
RepairTableSemanticsMenormalkan span dan scope tidak valid, menghapus referensi header lokal tabel tidak valid, dan memindahkan satu keterangan yang salah tempat
RepairRubyWarichuSequencesMengurutkan ulang anak hanya ketika multiset peran yang dipersyaratkan persis sudah ada
RepairPronunciationHintsMenghapus petunjuk yang salah ketik, memangkas referensi leksikon tidak valid, dan menormalkan subtipe MIME PLS yang disematkan
RepairMissingAlternateTextMemulihkan Alt yang hilang untuk Figure, Formula, dan Form dari judul yang ada, teks ekspansi, teks yang diekstrak dari MCID yang sama, atau fallback eksplisit dalam urutan itu
RepairLanguageInheritanceMempromosikan bahasa default root struktur atau eksplisit yang valid ke Catalog dan menghapus entri bahasa tingkat struktur yang tidak valid atau redundan ketika pewarisan tidak ambigu
RepairHeadingOrderMenomori ulang hanya cacat heading pertama dan tingkat yang dilewati sambil mempertahankan urutan dokumen
RepairArtifactTaggingMenulis ulang tag konten bertanda yang terkait dengan elemen struktur Artifact untuk konten halaman produsen dan termuat
AllowDocumentFragmentHeadingStartsMengatur ulang konteks heading di dalam setiap DocumentFragment untuk perbaikan dan validasi pasca-perbaikan
RollbackOnValidationFailureMemulihkan grafik asli ketika kesalahan PDF/UA-2 apa pun tetap ada setelah perbaikan
CustomAttributeNamespaceURIMenyediakan namespace eksplisit untuk pemilik atribut kustom yang semantiknya tidak dapat disimpulkan dengan aman, dengan default kosong yang gagal tertutup
DefaultLanguageMenyediakan tag bahasa BCP-47 hanya ketika baik Catalog maupun root struktur tidak berisi bahasa valid
FallbackAlternateTextMenyediakan teks alternatif yang ditinjau pemanggil setelah semua sumber turunan dokumen gagal, dengan default kosong yang tidak pernah membuat deskripsi
MaxGeneratedAlternateTextCharactersMembatasi ekstraksi teks MCID yang sama dan default ke 4.096 unit kode UTF-16
MaxObjectsMembatasi pemindaian grafik objek dan default ke 1.000.000 objek
MaxRepairsMembatasi mutasi yang dipertahankan dan default ke 100.000 operasi perbaikan

Laporan perbaikan

THPDFUA2RepairReport melaporkan apakah grafik berubah atau digulung balik, apakah batas terlampaui, status validasi pasca-perbaikan, objek yang diperiksa, kesalahan yang tersisa, dan jumlah untuk setiap keluarga perbaikan termasuk teks alternatif, entri bahasa, tingkat heading, dan tag Artifact

UnresolvedAlternateTextCount, UnresolvedLanguageCount, dan UnresolvedArtifactCount membedakan semantik yang masih memerlukan tinjauan penulis dari mutasi otomatis

Larik THPDFUA2ValidationIssues yang dikembalikan berisi diagnostik pasca-perbaikan ketika validasi gagal dan diagnostik stabil khusus perbaikan ketika batas sumber daya atau peta peran duplikat yang bertentangan menghentikan transaksi

Overload terperinci juga mengembalikan temuan pra-perbaikan yang dianotasi sebagai crsApplied, crsUnresolved, crsRolledBack, atau crsFailed, plus ringkasan terhitung untuk setiap keluarga perbaikan

Overload provenance ini melakukan lintasan validasi pra-perbaikan terbatas tambahan; gunakan overload tiga-keluaran yang ada ketika hanya laporan akhir dan isu yang diperlukan

Atomisitas dan keamanan

Contoh

var
  Options: THPDFUA2RepairOptions;
  Report: THPDFUA2RepairReport;
  Issues: THPDFUA2ValidationIssues;
begin
  Options := THPDFUA2RepairOptions.Default;
  Options.DefaultLanguage := 'en-US';
  Options.CustomAttributeNamespaceURI :=
    'https://example.com/ns/accessibility-attributes';
  if not PDF.RepairPDFUA2Structure(Options, Report, Issues) then
    raise Exception.CreateFmt('%s at %s',
      [String(Issues[0].Code), String(Issues[0].Path)]);
end;

API terkait