Native Linux C ABI

HotPDFLinuxABI.lpr bygger et native x86_64 ELF delt bibliotek navngivet libhotpdf.so.1 med SONAME libhotpdf.so.1 og public symboler tildelt HOTPDF_1.0

Biblioteket bruger THPDFHeadlessDocument og CPU-rendering uden en Windows-komponent, et aktivt skrivebord, en PDF-viewer eller en Python-proces ved runtime; Python bruges af build- og accept-scriptene

Build og accept

sh Tests/Linux/Build-LinuxABI.sh
sh Tests/Linux/Run-LinuxABIAcceptance.sh
FPC_EXE=/usr/local/bin/fpc HPDF_LINUX_OUTPUT=Tests/Linux/bin/linux-abi331 sh Tests/Linux/Run-LinuxABIAcceptance.sh

Brug native FPC 3.3.1 eller nyere med matchende FCL- og paszlib-units, en C-compiler, binutils, Fontconfig og installerede TrueType-fonte; accept-Python-miljøet behøver også pypdf med dets AES-provider, PyMuPDF, Pillow og NumPy

FPC_EXE, HPDF_LINUX_OUTPUT og PYTHON_EXE vælger værktøjsplaceringer; standard accept-Python-miljøet er /opt/hotpdf-python/bin/python

FPC skriver normalt en anonym exportblok ind i sin ELF-linker-response; buildet navngiver den blok med det indcheckede symbolmap inden linking, fordi en anden navngiven version script ville konflikte med den anonyme blok

Public interface

Inkluder Lib/hotpdf_abi.h for det delte record-layout og statuskonstanter; hpdf_abi_io_v1_size og hpdf_abi_operation_v1_size rapporterer faktiske native record-størrelser

Linux-biblioteket eksporterer ABI-discovery, capability-discovery, dokumentoprettelse og -destruktion, callback-indlæsning og -gemning, sideoptælling, hpdf_document_execute_json_v1 samt todokument-hpdf_document_compare_json_v1-indgangspunktet

Opdag aktuelle operationer gennem hpdf_capabilities_json_to_io i stedet for at antage Windows-operationssættet

OperationAdfærd
infoSide-, formular- og signeret felt-antal
text.extractUnicode sidetekst i JSON og valgfri UTF-8-output med et valgfrit nul-baseret pages-array
forms.readFuldt kvalificerede feltnavne, Unicode-værdier, komplette choice-markeringer, typer, flag og maksimale længder
forms.fillTransaktionelle tekst-, choice-, multiselect-, checkbox- og radio-opdateringer, push-button-captions, matchende indlejret-font-appearances og inkrementel PDF-output
annotations.export / annotations.importAfgrænset annotation XFDF-udveksling med append-transaktioner, eksakt Unicode, binære streams, popup/svar-referencer, kryptering og autentificeret certificeringspolitik
forms.export / forms.importAfgrænset scalar- og rich FDF/XFDF-udveksling med fire rigtige styles pr. valgt konfigureret rich-familie, krypterede PDF-transaktioner, regenererede appearances, signaturpolitikker og synkrone fragmenterede callbacks
renderCairo PNG-output med side, dpi, view- eller print-brug, annotation-options og default optional content-konfigurationen
signInkrementel PEM- eller PFX-signering, eksisterende eller nyligt oprettede felter, synlige appearances og certificering, inklusive autentificerede AES-256 R5/R6-input og digest-, metadata-, profil- og valideret evidence-options
signatures.verifyFaktisk CMS-verifikation, signeret revisionslængder, valgfri eksplicit CA-trust-evaluering og validering af signeret revocation-information
html.importNative HTML/CSS dokumentoprettelse med Unicode-fonte, paginering, billeder, hyperlinks og valgfrie AcroForm-kontroller
text.drawSynlig eller usynlig Unicode sidetekst med bevarede originale sidestreams og autentificerede krypterede revisioner
ocrRigtig Tesseract-genkendelse med afgrænset barn-levetid, ordresultater og et valgfrit søgbart PDF-lag
pages.importValgte side ressource-importer med uafhængig kilde-input og transaktionelle destinationsopdateringer
pdfa.convertRaster- eller tekst/vektor PDF/A-4-konvertering med valgfri font-reparation og den valgte modes valideringskrav
compare / compare.contractTo-handle sideantal-, sidetekst-, objektantal-, rendered image-, strukturel og fuld sammenligning plus semantisk kontraktsammenligning med forberedt JSON-, HTML- eller annoteret PDF-review-output
{"schemaVersion":1,"type":"render","page":0,"dpi":150,"usage":"print","annotations":false,
 "limits":{"memoryBytes":268435456,"outputBytes":268435456,"pixels":100000000}}

Native signeringsworkflows accepterer en eksplicit PEM- eller Base64 PFX-identitet, valgfrie nye signaturfelter og Unicode-appearances samt certificeringstilladelser; succesfuld signering erstatter den indlæste kontekst med den forberedte signerede revision, mens mislykket signering eller publicering bevarer den originale kontekst

Native signerings-options binder faktisk SHA256-, SHA384- eller SHA512-valg, Unicode signaturinformation, juridisk attestation, eksplicitte trust-bytes, valideret signeret revocation-evidence, rigtige appearance-presets og applikationshævdet legitimations- eller timestamp-transportproveniens

Den valgfrie optional content viewer-tilstand leverer eksplicitte automatiske View-, Print- eller Export-usage-applications, zoom, sprog, brugerkontekst og operations-lokale manuelle markeringer gennem uændrede V1-records

render-operationen accepterer usage: "view" eller usage: "print" med view som standard; opdag valgene gennem capability renderUsages-arrayet med uændrede V1-callback- og operations-records

Annotations screen- og print-flag følger den valgte brug, og annotations: false undertrykker annotationer i begge tilstande; udeladelse af optionalContent beholder den statiske default-konfiguration, mens et eksplicit objekt aktiverer de dokumenterede automatiske anbefalinger og operations-lokale manuelle markeringer

Tests/Linux/Run-LinuxABIRenderUsage.sh verificerer rigtige PNG-pixels for plain- og AES R5/R6-kilder, default-off indhold, callback-fejl, budgetter, cancellation og same-handle-genopretning; se Tests/Linux/HeadlessRenderUsage.en-us.md for fixture-afhængigheder og den valgfrie pre-genererede fixture-mappe

Callbacks og levetid

Form appearance-options accepterer Unicode-tekst, exportværdier eller komplette markerings-arrays, eksplicitte button-tilstande, fontindstillinger og transaktionelle ressourcelgrænser

Læse- og skrive-callbacks må returnere delvise overførsler; succesfulde overførsler skal gøre positiv fremgang og må ikke overstige det anmodede antal

Alle callbacks afvikles synkront på den kaldende tråd, inklusive cancellation-tjek inde i dokumentparsing, rendering og kryptografiske checkpoints

Callback-input kopieres til en eksklusivt oprettet privat midlertidig fil med mode 0600, så Linux input-callbacks og deres user data kun behøver at forblive gyldige, indtil load- eller execute-kaldet returnerer

Operationer på et delt dokumenthandle serialiseres internt; hvert aktivt kald holder en uafhængig reference, så at destruere et handle fra en progress-callback invaliderer efterfølgende opslag, mens det aktuelle kald får lov at afslutte sikkert

Rekursivt at afvikle en anden operation på samme handle fra dets callback bør undgås; hold det delte bibliotek indlæst, indtil alle kald er returneret, og hvert handle er destrueret

Budgetter og publicering

JSON-input er begrænset til 4 MiB og 64 nesting-niveauer og afviser ugyldig UTF-8, duplikerede members, misdannede numeriske grænser og Int64-til-Int32 parameterafklipning

Rå UTF-8 og Unicode-escapes bærer samme strengværdier, inklusive supplementary-tegn repræsenteret af gyldige UTF-16 surrogate-par; uparede surrogate-escapes fejler inden dokumentmutation eller binær publicering

Operationsgrænser inkluderer memoryBytes, outputBytes, resultBytes og pixels; dokumentgrænser gælder også tidligere indlæste handles, mens managed hukommelse og renderingsgrænser ikke lover en proces-RSS-loft

PDF- og PNG-output er fuldt forberedt og tjekket, før output-callbacks begynder; en kalder-ejet output-callback kan beholde en delvis overførsel efter egen I/O-fejl, men mislykket binær eller resultatpublicering committerer ikke formularedigeringer eller erstatter en tidligere indlæst kontekst

Succesfulde PDF-mutationer committerer det forberedte output som både det aktuelle dokument og dets private kildesnapshot, så en efterfølgende samme-værdi FDF- eller XFDF-import returnerer de eksakte committede PDF-bytes med updated=0 og beholder tidligere formulardfyldninger, typede rich-appearances, tegnet tekst og importerede sider

Private staging-filer fjernes, når konteksten erstattes eller destrueres; succesfuldt inkrementelt formular- og signaturoutput bevarer det originale kildepræfiks og krypteringspolitik

Evidence

Valgfri arkiveringsfont-reparation aktiverer afgrænset Ghostscript-substitution og -indlejring med rigtig PDF/A-4-validering inden callbacks

Native annoteret review-PDF tilføjer faktisk forberedt PDF-output, Unicode-highlights og autentificerede P3-annotationstilladelser til semantisk sammenligning

Native kontraktsammenligning leverer afgrænset to-handle semantisk sammenligning, Unicode review-HTML og rigtig kildelinje-geometri

Generel native dokumentsammenligning normaliserer objektgrafer og stream-encoding, sammenligner rigtige Cairo-pixels med eksplicitte tærskler og bevarer dokumenttilstand og callback-publiceringsbudgetter

Accept-klienten verificerer rigtige C header-layouts og versioneret symbolopslag, delvise callbacks, 80 samtidige shared handle-operationer, cancellation, Unicode-redigeringer, rollback og krypteret signering

Uafhængige pypdf-, MuPDF- og OpenSSL-readers verificerer de rigtige PDF'er, PNG-pixels, bevarede adgangskoder, security dictionaries, dokument-ID'er, eksakte ByteRange-gaps, gyldige signaturer og afvisning af ændrede signerede bytes

Headless dokument-API · Native rendering · Tilbageværende leveringsplan