Indlæst PDF til PDF/A-4 med tekst- og vektorbevaring

HPDFArchivalConversion tilbyder en bevaringsprofil til indlæste dokumenter, hvis synlige fonts, farverum og renderingsressourcer kan tilfredsstille PDF/A-4 uden at erstatte deres sideindhold

Konverteren beholder originale tekstoperatorer, vektorpaths, billeder, sidegeometri og eksisterende OCR-tekstlag, flader synlige normale annotations- og widget-appearances ud til vektor-Form XObjects, reparerer understøttede metadata- og strukturelle problemer og validerer det serialiserede resultat inden publicering

Denne profil rasteriserer aldrig en side: RasterizedPages forbliver nul, også når OCR rendererer en midlertidig genkendelses-bitmap og tilføjer usynlig søgbar tekst

Runtime-accept dækker Delphi Win32 og Win64; Windows FPC kompilerer implementeringen fra friske kilder, og de genererede public headers kompilerer med C++Builder Win32 og Win64x

Indgangspunkter

function HPDFConvertLoadedToPDFA4Preserving(Source: THotPDF;
  Destination: TStream; const SRGBProfile: TBytes;
  const Options: THPDFArchivalPreservationOptions;
  out Report: THPDFArchivalPreservationReport): Boolean;

function HPDFConvertLoadedToPDFA4PreservingFile(Source: THotPDF;
  const TargetFileName: string; const SRGBProfile: TBytes;
  const Options: THPDFArchivalPreservationOptions;
  out Report: THPDFArchivalPreservationReport): Boolean;

Indlæs kilden først, hold enhver kalder-ejet inputstream i live, og giv konverteren eksklusiv adgang til dokumentet under operationen

Options := THPDFArchivalPreservationOptions.Default;
if not HPDFConvertLoadedToPDFA4PreservingFile(Source, TargetFileName,
  SRGBProfile, Options, Report) then
  raise Exception.Create(Report.Conversion.Diagnostic);

Bevaringsbevis

Konverteren tager snapshot af den aktuelle redigerede kildegraf under en graftransaktion og ruller kilden tilbage efter serialisering og udfører derefter alt konverteringsarbejde på en uafhængig indlæst klon

Originale dekodede sideindholdsstreams skal forblive byte-identiske og tilgængelige fra deres originale sider i original rækkefølge efter output-genindlæsning

Side ressource-træer og bevarede normale appearance ressource-træer gennemløbes med objekt- og rekursionsgrænser; indlejrede fontprogrammer, ToUnicode-maps, billeder, ICC-profiler og nestede Form XObjects beholder deres originale encodede payloads, verificeret med streaming SHA-256 og tjekket for fortsat tilgængelighed fra outputsider

Uafhængige indholdsstreams indrammer originale sideoperatorer med graphics state-vagter og holder tilføjede appearance-operatorer, hvilket undgår den native enkeltstream-tilføjelsessti, der ville omskrive en original indholdsstream

TextAndVectorContentPreserved bliver kun true, efter native output-validering og bevaringstjek består; den ryddes, når konvertering eller filpublicering fejler

Appearance-håndtering

Levering af en eksisterende normal-appearance understøtter vilkårlig indlejret-font-tekst, der allerede er korrekt repræsenteret i den appearance, inklusive Unicode; konverteren beholder den appearance i stedet for at substituere en systemfont

Udfladning fjerner annotationsinteraktion, redigerbare felter, beregninger, handlinger og signaturfelter, mens synlige appearances beholdes; hver berørt annotation og hver syntetiseret appearance giver en tabs-indgang med sin kildeside, annotationsindeks og objektnummer, når tilgængelig

Farver, fonts og eksplicitte tab

Det krævede ICC-argument er en sRGB matrix/TRC-profil accepteret af den eksisterende arkiveringsvalidator; hvert eksisterende output-profil skal have præcis de samme dekodede bytes som den leverede profil, ellers afvises konverteringen for at undgå refortolkning af den eksisterende outputbetingelse

Konverteren tilføjer en sRGB PDF/A-output intent kun efter behov, synkroniserer den faktiske serializer til et PDF 2.0-header og kalder afgrænset base PDF/A-4 metadata- og strukturel reparation

Den indlejrer ikke manglende synlige fontprogrammer, rekoder ikke original tekst, farver ikke DeviceCMYK-operatorer om, erstatter ikke en eksisterende output-betingelse eller flader sidetransparens ud til en bitmap; uopløste native preflight-fund afviser publicering

Krypterede kilder skal dekrypteres inden konvertering; signaturfelter kræver eksplicit AllowSignatureInvalidation, og eksisterende indlejrede filer kræver eksplicit RemoveEmbeddedFiles, fordi denne profil målretter base PDF/A-4

Losses rapporterer også signaturinvalidering, indlejret fil-fjernelse, fjernelse af legacy Info-dictionaries og fjernelse af forbudt katalog- eller præsentationsmetadata

Eksisterende XMP beholdes, når understøttet; når metadata genereres, overføres understøttet titel-, forfatter-, emne- og nøgleordsinformation, mens vilkårlige legacy Info-felter ikke lover at overleve

OCR og budgetter

AddOCRToImagePages er som standard false; aktivering genkender sider uden udtrækkelig tekst og tilføjer usynlig tekst uden at erstatte originalt indhold eller eksisterende OCR-lag

Sæt OCREngine til en applikationsmotor eller lad den være nil for den indbyggede afgrænsede ASCII-OCR-motor, hvis sprog- og typografidækning forbliver den fra genkendelsesprofilen

OCROptions styrer genkendelsesopløsning og ordbudgetter, mens konverteren tvinger skip-pages-with-text, bevarelse af eksisterende OCR-lag og udeladelse af en ny optional content-gruppe

Limits bruger THPDFArchivalConversionOptions.Default til sideantal, objektantal, stagede output-bytes, enkelt stream-arbejde, kumulativt stream-arbejde, cancellation og synkrone checkpoints; raster pixelgrænser gælder kun, når OCR rendererer genkendelses-bitmaps

Yderligere standarder er 1.024 tabs-indgange, 1.048.576 udtrukne eller forventede tekst code units og 4.000.000 indholdstokens pr. native valideringsgennemløb

Ressource-payload hashing tæller encodede bytes mod de samme stream-arbejdsbudgetter; kilde- og outputverifikation forbruger begge kumulativt arbejde, så store scan-samlinger kan kræve en eksplicit forøget MaxTotalDecodedBytes, selvom ressourceverifikation bruger en fast 64 KiB hash-buffer

Budgetter gælder efter kildeindlæsning og afgrænser konverter-ejede snapshots og stagede output separat; konfigurér loader-grænser ved accept af utro input

Publicering og validering

Stream-API'en kræver en tom søgbar destination ved position nul og afviser kilde-aliasser; den kopierer stagede bytes først efter genindlæsning, native validering, bevaringstjek og cancellation-tjek lykkes

En destinations-skrivefejl udløser en best effort-nulstilling; en vilkårlig custom stream kan afvise den nulstilling, så brug fil-indgangspunktet til atomisk filpublicering

Fil-API'en sonderer for kilde-aliasser, opretter en eksklusiv midlertidig fil ved siden af target, flusher den og erstatter target med MoveFileEx først, efter alle tjek består; tidligere fejl beholder et eksisterende target og fjerner den midlertidige fil

InitialValidationIssues, Repair, Conversion.ValidationIssues, OCR-detaljer, stream-antal, udtrukket tekst-antal og eksplicitte tab forbliver tilgængelige til inspektion

Native validering dækker de understøttede HotPDF PDF/A-4-regler og er ikke en generel certificering af vilkårlige PDF'er; regressionsaccept bruger derudover uafhængige pypdf- og MuPDF-tjek plus veraPDF PDF/A-4-validering på genererede appearance- og native OCR-artefakter

Rigtig korpus-regression inkluderer indlejret-font Word- og biblioteksguider samt en 380-siders kinesisk scansamling, mens en handelsrapport med ikke-indlejrede fonts og DeviceCMYK-indhold er en eksplicit afvisningstilfælde

Regressionskommandoer

powershell -File Tests/Delphi/Run-ArchivalPreservationTests.ps1 -Platform Win32
powershell -File Tests/Delphi/Run-ArchivalPreservationTests.ps1 -Platform Win64
python Tests/Delphi/Fixtures/ArchivalPreservation/verify_preserving_output.py
verapdf --format xml --flavour 4 Tests/Delphi/generated/ArchivalPreservation/appearance.pdf Tests/Delphi/generated/ArchivalPreservation/ocr.pdf Tests/Delphi/generated/ArchivalPreservation/native-appearance.pdf

Delphi-runneren undertrykker viewer-start og inkluderer både bevarings- og eksisterende raster-regressionsfixtures; uafhængig veraPDF-accept bruger den faktiske PDF/A-4-valideringsprofil

Relaterede emner

Raster-arkiveringskonvertering leverer en separat profil med eksplicit tab af original tekst og vektorer, når native rendering understøttes