Laddad PDF till PDF/A-4 med bevarad text och vektorer

HPDFArchivalConversion erbjuder en bevarandeprofil för laddade dokument vars synliga teckensnitt, färgrymder och renderingsresurser kan uppfylla PDF/A-4 utan att deras sidinnehåll byts ut

Konverteraren behåller ursprungliga textoperatorer, vektorpaths, bilder, sidgeometri och befintliga OCR-textlager, plattar ut synliga normal-annoterings- och widgetappearances till vektor-Form XObjects, reparerar stött metadata- och strukturbortfall och validerar det serialiserade resultatet före publiceringen

Denna profil rastrerar aldrig en sida: RasterizedPages förblir noll, även när OCR renderar en tillfällig igenkänningsbitmapp och lägger till osynlig sökbar text

Körtidsacceptans täcker Delphi Win32 och Win64; Windows FPC kompilerar implementeringen från färska källor, och de genererade publika headerfilerna kompilerar med C++Builder Win32 och Win64x

Ingångspunkter

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;

Ladda källan först, håll en eventuell indataström som anroparen äger vid liv och ge konverteraren exklusiv åtkomst till dokumentet under operationen

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

Bevarandebevis

Konverteraren tar en ögonblicksbild av den aktuella redigerade källgrafen under en graftransaktion och rullar tillbaka källan efter serialiseringen, och utför sedan allt konverteringsarbete på en fristående laddad klon

Ursprungliga avkodade sidinnehållsströmmar måste förbli byteidentiska och nås från sina ursprungliga sidor i ursprunglig ordning efter omläsning av utdata

Sidresursträd och kvarhållna normal-appearance-resursträd traverseras med objekt- och rekursionsgränser; inbäddade teckensnittsprogram, ToUnicode-mappningar, bilder, ICC-profiler och nästlade Form XObjects behåller sina ursprungliga kodade nyttolaster, verifierade med strömmande SHA-256 och kontrollerade för fortsatt nåbarhet från utdatasidor

Fristående innehållsströmmar omsluter ursprungliga sidoperatorer med grafiktillståndsskydd och rymmer tillagda appearance-operatorer, vilket undviker den native vägen med tillägg i en enda ström som skulle skriva om en ursprunglig innehållsström

TextAndVectorContentPreserved blir true först efter att native utdatavalidering och bevarandekontroller godkänts; den nollställs när konverteringen eller filpubliceringen misslyckas

Appearance-hantering

Att tillhandahålla en befintlig normal-appearance stöder godtycklig inbäddad teckensnittstext som redan representeras korrekt i den appearance:n, inklusive Unicode; konverteraren behåller den appearance:n i stället för att byta till ett systemteckensnitt

Plattning tar bort annoteringsinteraktion, redigerbara fält, beräkningar, actions och signaturfält samtidigt som synliga appearances behålls; varje berörd annotering och varje syntetiserad appearance ger en förlustpost med sin källsida, annoteringsindex och objektnummer när det finns

Färg, teckensnitt och explicita förluster

ICC-argumentet som krävs är en sRGB matrix/TRC-profil som den befintliga arkivvalidatorn accepterar; varje befintlig utdataprofil måste ha exakt samma avkodade byte som den tillhandahållna profilen, annars avvisas konverteringen för att inte tolka om det befintliga utdatavillkoret

Konverteraren lägger bara till en sRGB PDF/A output intent vid behov, synkroniserar den verkliga serializern till en PDF 2.0-header och anropar avgränsad basreparation av PDF/A-4-metadata och struktur

Den inbäddar inte saknade synliga teckensnittsprogram, kodar inte om ursprunglig text, färgar inte om DeviceCMYK-operatorer, byter inte ut ett befintligt utdatavillkor och plattar inte ut sidtransparens till en bitmapp; olösta native preflight-fynd avvisar publiceringen

Krypterade källor måste dekrypteras före konverteringen; signaturfält kräver explicit AllowSignatureInvalidation, och befintliga inbäddade filer kräver explicit RemoveEmbeddedFiles eftersom denna profil riktar sig mot bas-PDF/A-4

Losses redovisar också signaturogiltigförklaring, borttagning av inbäddade filer, borttagning av äldre Info-dictionaries och borttagning av förbjuden katalog- eller presentationsmetadata

Befintlig XMP behålls när den stöds; när metadata genereras överförs information om titel, författare, ämne och nyckelord som stöds, medan godtyckliga äldre Info-fält inte garanteras överleva

OCR och budgeter

AddOCRToImagePages är false som standard; aktiveras den igenkänns sidor utan extraherbar text och osynlig text läggs till utan att ursprungligt innehåll eller befintliga OCR-lager byts ut

Sätt OCREngine till en applikationsmotor eller lämna den som nil för den inbyggda avgränsade ASCII-OCR-motorn, vars språk- och typografitäckning fortfarande är den hos den inbyggda igenkänningsprofilen

OCROptions styr igenkänningsupplösning och ordbudgeter, medan konverteraren tvingar skip-pages-with-text, kvarhållande av befintliga OCR-lager och utelämnande av en ny optional-content-grupp

Limits använder THPDFArchivalConversionOptions.Default för sidantal, objektantal, etablerade utdata-byte, individuellt strömarbete, kumulativt strömarbete, avbrott och synkrona kontrollpunkter; rasterpixelgränser gäller bara när OCR renderar igenkänningsbitmappar

Ytterligare standardvärden är 1 024 förlustposter, 1 048 576 extraherade eller förväntade textkodenheter och 4 000 000 innehållstokens per native valideringspass

Hashning av resursnyttolaster räknar kodade byte mot samma strömarbetsbudgeter; käll- och utdataverifiering förbrukar båda kumulativt arbete, så stora skannsamlingar kan kräva explicit ökad MaxTotalDecodedBytes även om resursverifieringen använder en fast hashbuffert på 64 KiB

Budgeter tillämpas efter källinläsningen och avgränsar konverterarens egna ögonblicksbilder respektive etablerad utdata separat; konfigurera inläsargränser när du tar emot opålitlig indata

Publicering och validering

Ström-API:et kräver en tom seekbar destination vid position noll och avvisar källalias; den kopierar etablerade byte först när omläsning, native validering, bevarandekontroller och avbrottskontroller lyckats

Ett skrivfel på destinationen utlöser en bäst-effort-återställning; en godtycklig egen ström kan avvisa den återställningen, så använd filingångspunkten för atomär filpublicering

Fil-API:et söker efter källalias, skapar en exklusiv temporär fil bredvid målet, spolar den och byter målet med MoveFileEx först när alla kontroller godkänts; tidigare fel behåller ett befintligt mål och tar bort den temporära filen

InitialValidationIssues, Repair, Conversion.ValidationIssues, OCR-detaljer, strömantal, extraherade textantal och explicita förluster finns kvar för granskning

Native validering täcker de stödda HotPDF PDF/A-4-reglerna och är ingen generell certifiering av godtyckliga PDF-filer; regressionsacceptansen använder dessutom fristående pypdf- och MuPDF-kontroller plus veraPDF PDF/A-4-validering på genererade appearance- och native OCR-artefakter

Verklig korpusregression omfattar Word- och biblioteksguider med inbäddade teckensnitt och en kinesisk skannsamling på 380 sidor, medan en handelsrapport med icke inbäddade teckensnitt och DeviceCMYK-innehåll är ett explicit avvisningsfall

Regressionskommandon

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-runner:n undertrycker visarstart och inkluderar både bevarande- och befintliga raster-regressionsfixtures; fristående veraPDF-acceptans använder den verkliga PDF/A-4-valideringsprofilen

Relaterade ämnen

Rasteriserad arkivkonvertering tillhandahåller en separat profil med explicit förlust av ursprunglig text och vektorer när native rendering stöds