HotPDF 2.200.2 för Delphi och C++Builder

Inbyggd PDF-generering, redigering, signering, standardmedveten utdata, teckensnittsoptimering och bildhantering för RAD Studio-applikationer

HotPDF låter VCL-applikationer skapa, modifiera, skydda, signera, optimera, importera, komprimera och spara PDF-dokument direkt från Delphi- eller C++Builder-kod, utan att distribuera en extern PDF-körtidsmiljö

Projektöversikt

HotPDF är ett PDF-komponentbibliotek på källkodsnivå för Delphi och C++Builder, det är byggt för skrivbordsprogramvara som behöver deterministisk PDF-utdata, direkt ritning på sidor, stark RAD Studio-integration och kompakt distribution

Komponenten täcker vardaglig PDF-generering, avancerad dokumentsammanställning, PDF-redigering, bildtung utmatning, formulär, anteckningar, kryptering, signeringsarbetsflöden, teckensnittsoptimering och strömbaserade arbetsflöden från ett enda inbyggt API-gränssnitt

De senaste biblioteksversionerna utökade HotPDF från en klassisk PDF-skrivare till en bredare inbyggd PDF-verktygslåda som täcker versionsspecifik PDF 1.3 / 1.4 / 1.5 / 1.6 / 1.7 funktionskontroll, utvald PDF 2.0-kryptering, överensstämmelse med PDF/A-1 / -2 / -3 + PDF/X-1a / -3 / -4 + PDF/UA-1-standarder, PAdES baseline / extended / long-term-validation digitala signaturer, en in-process PFX / PKCS#12-signeringspipeline som inte beror på OpenSSL eller externa binärer, sparning av inkrementella uppdateringar, CFF / OpenType / CID-keyed CFF-teckensnittsundergrupper samt PDF-exportadaptrar för FastReport, QuickReport, ReportBuilder och DevExpress ExpressPrinting som dirigerar deras befintliga rapporter genom HotPDF som en enda PDF-backend; ett Direct File API bearbetar multi-gigabyte PDF-filer med miljontals objekt fil-till-fil - sidantal, kopior, omskrivningar av dokumentinformation samt AES-256-kryptering eller avkryptering - på några sekunder, och inläsaren återställer nu även dokument inpackade i transportbehållare med föråldrade offsetvärden samt inkrementellt uppdaterade filer med övergivna eller ersatta objekt

Cykeln v2.119.32-51 lade till arabisk / persisk / urdu-formning på tillverkarsidan (LAM-ALEF obligatorisk ligatur, Arabic Presentation Forms-A 9 bokstäver), en funktionskomplett OpenType GSUB-ersättningsmotor som täcker varje LookupType 1-8 med Script / LangSys-val och TTF-undergruppsstängning för ersättningsglyfer, XFA (XML Forms Architecture) behållarstöd (AddXFAPacket / ClearXFAPackets / XFAPacketCount), en AcroForm /AA /K + /F + /V + /C formulärfältsutlösarfamilj, multi-Unicode /DR-teckensnittsregistrering via RegisterAcroFormFont, tillgänglighetsattributinställningar för strukturelement (/Lang / /E / /T) med en Table 333 standardstrukturtypsenum och AddStructureElement typad överlagring samt egenskaper för markerade innehållssekvenser på BeginTaggedContent

Cykeln v2.119.52-68 stängde Phase 8 automatiska formningspipeline och utökade skripttäckningen: Arabic Extended-A (inklusive U+0750-077F Arabic Supplement och U+08A0-08FF Arabic Extended-A) och persisk / urdu Form-B utökades till hela U+0672-06D5 tabellen för föreningsklasser plus 26 nya Forms-A-mappningar, med post-pass-sammanslagning för LAM-ALEF, YEH-HAMZA + vokalpar (8 ligaturer i U+FBEA-FBFB), den fristående Allah-ligaturen (U+FDF2) och Bismillah-frasen på 22 kodpunkter (U+FDFD); den nya opt-in-egenskapen ShapingFeatures + THPDFShapingFeature-enum (sfArabicGSUB / sfStandardLigatures / sfContextualLigatures / sfContextualAlternates / sfIndicShaping) gör att tillverkaren automatiskt genererar GSUB-drivna teckensnittsspecifika rlig / liga / clig / rclt-ersättningar, med Latin Standard Ligatures (ff / fi / fl / ffi / ffl / ſt / st via U+FB00-FB06) och Devanagari Indic-stavelseomorganisering (Repha + pre-base I-matra) i samma pipeline; nya formningsförmågametoder för syriska (GetSyriacJoiningClass / GetSyriacPosition), mongoliska (GetMongolianJoiningClass / GetMongolianPosition) och Devanagari (GetDevanagariCategory / ApplyDevanagariReorder) låter anropare driva icke-arabiska komplexa skript genom samma GSUB-motor; GetCodepointAdvance exponerar den cachade /W em-fraktionen för radbrytningsberäkningar, och AssignSyntheticCodepointForGID / GetSyntheticCodepointForGID låter tillverkaren skicka ut alla GSUB-ersättnings-GID (Devanagari-klusterformer, stilistiska alternativ, CJK-variationssekvenser) genom Private-Use-Area-kodpunkter med fullständig /CIDToGIDMap + /ToUnicode + /W-integration; kumulativ ToUnicode CMap levererar nu 35 ligatur-omvänd-mappningsposter (8 LAM-ALEF + 18 YEH-HAMZA-familjen + 1 Allah + 1 Bismillah + 7 latin) så att kopiering/inklistring i konsumentläsare ger källkodpunkterna; dokumentationsskelett för ChangeLog levereras nu på 11 språk (EN / CN / AR / DE / ES / FR / IT / JA / KO / PT / RU) med ett språkval-gränssnitt; gränsen för bevarande av ChangeLog höjdes från 250 till 500 versionsavsnitt

Cykeln v2.152-v2.190 byggde ut en komplett OpenType GPOS-positioneringsmotor och utökade täckningen av komplexa skript; tillvalsalternativ för formning tillämpar nu teckensnittets egen kerning (parvis, kontextuell och höger-till-vänster), kombineringsteckenplacering (tecken-till-bas, tecken-till-tecken och per-komponent tecken-till-ligatur), kursiva anslutningsankare samt vertikal kerning för vertikal text, allt skrivet som standard PDF-textoperatorer så att alla läsare renderar samma resultat; formning på tillverkarsidan täcker nu arabiska (inklusive blocken Supplement, Extended-A och Extended-B), syriska, mongoliska, N'Ko, Adlam, Hanifi Rohingya, tibetansk konsonantstapling, Devanagari och andra Indic-skript genom teckensnittets Indic-funktionskedja, javanesiska, thailändsk och laotisk teckenordning, hebreisk vokalpunktsordning, khmer, myanmar, Tai Viet och Meetei Mayek; en familj av valfria OpenType-typografifunktioner - standard-, diskretionära och historiska ligaturer, kapitäler, oldstyle / lining / proportionella / tabellformiga siffror, upphöjda tecken, nedsänkta tecken, ordningstal, bråk, vetenskapliga nedsänkningar, täljare, nämnare, stilistiska och kontextuella alternativ, lokalisede former, skiftlägeskänsliga former, struket noll och vertikala alternativ - kan tillämpas automatiskt under textutmatning; kopiering, inklistring och textsökning återställer de ursprungliga tecknen över all formad utdata, inklusive ligaturer och kedjade funktionsersättningar; teckensnittsutmatningen blev också mindre: inbäddade teckensnittsprogram är alltid Flate-komprimerade, ett teckensnitt som används på flera sidor bäddas in en gång per dokument, undergruppstaggar härleds deterministiskt för reproducerbar utdata, och ett valfritt kompakt läge skriver ren ASCII-text med standardteckensnitt som oinbäddad WinAnsi-text

PDF-standardtäckning

HotPDF innehåller versionsspecifikt stöd för de praktiska PDF 1.3-, PDF 1.4-, PDF 1.5-, PDF 1.6- och PDF 1.7-redigeringsfunktioner som används av affärs-, bildbehandlings-, publicerings- och dokumentautomatiseringsapplikationer; publika API:er kontrolleras mot den valda PDF-versionen så att genererade filer undviker nyare poster när strikt kompatibilitet krävs

Den nuvarande matrisen täcker filter och prediktorer, XRef-strömmar, inkrementella uppdateringskedjor, AES-kryptering, säkerhet med offentlig nyckel, DeviceCMYK- och ICCBased-färg, plattsättningsmönster, axiella/radiella/multi-stegs skuggningar, inbäddade bilder, lager, transparensgrupper, sidövergångar, anteckningar, AcroForm-widgetar, externa signeringskrokar, XMP-metadata, taggade PDF-strukturträd, OutputIntents, produktionssidboxar, ViewerPreferences, UserUnit, Tabs-ordning samt inbäddning/undergruppering av TrueType-, Type 3-, CFF-, OpenType-CFF- och CID-keyed CFF-teckensnitt

Detta är en bred standardmedveten täckning för HotPDF:s redigeringsyta som stöds, inte ett generellt påstående om att alla gränsfall i ISO 32000-1 är implementerade

Varför välja HotPDF

Inbyggd RAD Studio-passform

Använd bekanta Delphi- och C++Builder-projekt, paket, strömmar, formulär och ritmönster istället för att omsluta en separat PDF-motor

Moderna PDF-funktioner

Bygg PDF-filer med formulär, anteckningar, lager, transparens, sidövergångar, taggad struktur, kryptering, signeringsplatshållare och inkrementella uppdateringar

Kompakt och snabb utdata

Minska PDF-storleken med zlib-ng-komprimering, libjpeg-turbo-bildbehandling, TrueType-undergruppering, OpenType-CFF-undergruppering och CID-keyed CFF-stöd för stora CJK-teckensnitt

Konkurrensfördelar

Funktionerna nedan är tydliga tekniska differentiatorer för HotPDF jämfört med typiska Delphi PDF-komponenter; de flesta konkurrerande kommersiella komponenter saknar antingen dessa funktioner helt eller är väsentligt svagare i produktion; varje rad motsvarar en verifierbar implementering och ett publikt API-gränssnitt inuti biblioteket

Komplett OpenType-formning + positionering

En komplett GSUB-ersättningsmotor som täcker varje LookupType 1-8 (Single, Multiple, Alternate, Ligature, Contextual, Chained Contextual, Extension, Reverse Chained Contextual), parat med en GPOS-positioneringsmotor som täcker alla 9 LookupTypes (parvis / enkel / kontextuell kerning, mark-to-base, mark-to-mark, per-ligature-component mark-to-ligature, kursiv koppling, avstånd, vertikal vkrn/vpal); all positionering skickas ut med standard PDF-textoperatorer, så att varje läsare renderar identiskt

Formning av komplexa skript på tillverkarsidan

Fler än 20 skript formas på tillverkarsidan, drivna av teckensnittets egen GSUB-funktionskedja: arabiska (inklusive Supplement / Extended-A / Extended-B), syriska, mongoliska, N'Ko, Adlam, Hanifi Rohingya, tibetansk stapling, Devanagari och Indic-familjen, javanesiska, thailändsk / laotisk teckenordning, hebreisk vokalordning, khmer, myanmar, Tai Viet, Meetei Mayek; utdata innehåller fullständig /ToUnicode omvänd mappning så att kopiering/inklistring återställer de ursprungliga kodpunkterna

In-process signeringsstack, inga externa beroenden

ASN.1, RSA, AES, PKCS#12-uppackning och CMS SignedData (RFC 5652) är alla implementerade inuti HotPDF; SignPDFWithPFX signerar en platshållar-PDF i ett enda anrop utan någon OpenSSL-körtidsmiljö och utan plattformens kryptoleverantör - hela signeringskedjan körs i din process, är reproducerbar, granskningsbar och kräver noll infödda binärer att distribuera

PAdES Long-Term Validation, från ände till ände

PAdES B-B, B-T, B-LT och B-LTA-arbetsflöden täcks helt: RFC 3161-tidsstämplar, DSS / VRI-ordböcker för långtidsvalidering, dokumenttidsstämpelsignaturer, begränsningar för Seed Value samt XAdES-i-PDF; detta är det strikta kravet för EU eIDAS-kompatibla elektroniska signaturer, där de flesta konkurrerande komponenter stannar vid grundläggande CMS-signering

Tre-axlig efterlevnad + Preflight

Oberoende profilkontroll för PDF/A-1/-2/-3, PDF/X-1a/-3/-4 och PDF/UA-1 samtidigt - samtal som inte uppfyller kraven genererar diagnostiska undantag istället för att tyst skriva icke-kompatibla PDF-filer; CreatePreflightReport skapar text-, JSON-, HTML- och CSV-rapporter med INI-profiler, inbyggda förinställningar, batch-aggregering och inbäddning av XMP-bevis, validerat från ände till ände mot veraPDF

Multi-gigabyte Direct File API

Arbetar på PDF-filen på disken utan att bygga objektgrafen i minnet; på ett dokument på 2 GB med 1,67 miljoner objekt: AES-256-kryptering ~14 s, avkryptering ~16 s, fullständig omskrivning ~6 s; att läsa sidantalet för ett dokument på 1,25 GB tar millisekunder; klassiska xref-tabeller, XRef-strömmar, hybridreferensfiler och inkrementellt uppdaterade dokument förblir alla på den direkta vägen

CFF / OpenType-CFF / CID-undergruppering

TrueType-, OpenType-CFF- och CID-keyed CFF-teckensnitt kan alla undergrupperas med bibehållna glyf-ID för Type0 / Identity-H-text; CJK-dokument som tidigare bäddade in 14 MB CID-keyed CFF-program levereras nu på 500 KB - 2 MB utan förlust av renderade glyfer; inbäddade teckensnittsprogram är alltid Flate-komprimerade, flersidiga teckensnitt bäddas in en gång per dokument och undergruppstaggar är deterministiska för reproducerbar utdata

Enhetlig fasad för körtidsloggning

THPDFLogger + den globala HPDFLog ger en diagnostisk fasad som kan växlas under körtid: Error / Warning / Info / Debug allvarlighetsfiltrering, samtidig fil + OutputDebugString + konsolmål, trådsäker, 10 MB enkel säkerhetskopieringsrullning, noll-overhead inaktiverad snabbväg; LoadFromFile, preflight-rapporter och reservvägen för objektströmmar är redan anslutna till strukturerad diagnostik som kan växlas vid körtid utan att bygga om - en operativ förmåga som de flesta konkurrerande komponenter helt saknar

Fyra rapportmotoradaptrar

Drop-in PDF-backends för FastReport (TfrxHotPDFExport), QuickReport (TQRHotPDFExportFilter), ReportBuilder (TppHotPDFDevice) och DevExpress ExpressPrinting (täcker cxGrid / cxRichEdit / cxScheduler / cxPivotGrid); befintliga rapportlayouter fortsätter att fungera - endast PDF-sändaren byts ut

Detta är levererade funktioner, inte löften på en färdplan; varje punkt ovan är implementerad i det nuvarande biblioteket, kompilerar rent och klarar DUnitX-tester samt veraPDF-validering från ände till ände; när du utvärderar konkurrerande komponenter, be om bevis på full GSUB/GPOS LookupType-täckning, en in-process PAdES B-LTA-kedja och uppmätt krypteringsgenomströmning för filer på flera gigabyte

Utvecklarfördelar

  • Källkodsbaserad integration håller felsökning och driftsättning under din kontroll
  • Delade Delphi- och C++Builder-exempel gör det enklare att verifiera beteende i båda språkstackarna
  • Statisk integrering av externa C-bibliotek håller komprimerings- och bildberoenden reproducerbara
  • Fokuserade hjälp-API:er täcker PDF-filter, FlateDecode, LZW, CCITT, bildmasker, streckkoder, teckensnittsundergrupper och arbetsflöden för sidinnehåll
  • PDF-versionskontroller kan automatiskt uppgradera utdataversionen eller upprätthålla strikt PDF 1.3/1.4/1.5/1.6/1.7-efterlevnad via StrictVersionLock
  • Färdiga Delphi- och C++Builder-paketprojekt täcker aktuella RAD Studio-generationer, inklusive 13.1 Florence

Nyligen gjorda bibliotekshöjdpunkter

Multi-gigabyte Direct File API

Familjen DAOpenFileReadOnly / DACopyFile / DASetDocumentInfo / DASaveAsFile samt fil-till-fil-anropen EncryptFile / DecryptFile arbetar direkt på PDF-filen istället för att bygga objektgrafen i minnet; på ett referensdokument på 2 GB med 1,67 miljoner objekt tar AES-256-kryptering ungefär 14 sekunder, avkryptering ungefär 16 sekunder och en fullständig omskrivning ungefär 6 sekunder; att öppna ett dokument på 1,25 GB för att läsa dess sidantal tar millisekunder; klassiska tabeller, korsreferensströmmar, hybridreferensfiler och inkrementellt uppdaterade dokument förblir alla på den direkta vägen

Preflight-rapporter

CreatePreflightReport och CreatePreflightReportWithProfile granskar en PDF mot de PDF/A-, PDF/X- och PDF/UA-kontroller som stöds och skapar text-, JSON-, HTML- eller CSV-rapporter, med profiler i INI-stil för att undertrycka godkända resultat - redo för CI-kontroller och batchinmatning av dokument; PreflightCLI-demot lägger till rekursiva mappkörningar och sammanställda instrumentpaneler

Formulärverktyg för inlästa dokument

HasFormFields och FormFieldExists besvarar formulärfrågor om en inläst PDF innan den rörs, fältvärden kan läsas och skrivas med index eller namn, och FlattenFormFields bränner in interaktiva AcroForm-fält i sidinnehållet och rapporterar hur många fält den plattade till - tillsammans med XFA-till-AcroForm-tillplattningen som gör XFA-formulär användbara i alla läsare

In-process PFX / PKCS#12-signering

THotPDF.SignPDFWithPFX(InputPDF, OutputPDF, PFXFile, Password) signerar en befintlig platshållar-PDF i ett enda anrop; hela stacken för ASN.1, RSA, AES, PKCS#12 och CMS SignedData (RFC 5652) är implementerad inuti HotPDF, så ingen OpenSSL-körtidsmiljö eller kryptoleverantör för plattformen behövs

PAdES Long-Term Validation

PAdES B-B, B-T, B-LT och B-LTA-arbetsflöden täcks från ände till ände: signaturskapande med RFC 3161-tidsstämplar, DSS / VRI-ordböcker för långtidsvalidering, dokumenttidsstämpelsignaturer och begränsningar för Seed Value; XAdES-i-PDF och tillämpning av signaturers Seed Value är en del av samma gränssnitt

Överensstämmelse med PDF/A, PDF/X och PDF/UA

HotPDF kontrollerar funktionsmetoder mot profilerna PDF/A-1 / -2 / -3, PDF/X-1a / -3 / -4 och PDF/UA-1; anrop som skulle bryta mot den valda profilen (transparens i PDF/A-1, JavaScript i PDF/A, externa anteckningar i PDF/X, otaggad struktur i PDF/UA) genererar diagnostiska undantag istället för att tyst skapa PDF-filer som inte uppfyller kraven

Tredjeparts rapportmotoradaptrar

Drop-in PDF-backends för de fyra vanligaste Delphi-rapportmotorerna: TfrxHotPDFExport (FastReport 4 / FastReport VCL), TQRHotPDFExportFilter (QuickReport), TppHotPDFDevice (ReportBuilder) och dxHotPDFExportReportLinkToFile/Stream (DevExpress ExpressPrinting System som täcker cxGrid / cxRichEdit / cxScheduler / cxPivotGrid); befintliga rapporter fortsätter att fungera - endast PDF-sändaren byts ut

OpenType GPOS-positioneringsmotor

Tillvalbar textpositionering driven av teckensnittets egna GPOS-data: parvis och kontextuell kerning för vänster-till-höger- och höger-till-vänster-text, mark-to-base, mark-to-mark och markplacering per ligaturkomponent, kursiv in-/utgångsinriktning, avståndspositionering samt vertikal kerning för vertikala teckensnitt; positionering skickas ut med standard PDF-textoperatorer, så att varje PDF-läsare renderar samma resultat

Täckning av formning för komplexa skript

Formning på tillverkarsidan renderar korrekt sammanfogad och omorganiserad text för arabiska (inklusive blocken Supplement, Extended-A och Extended-B), syriska, mongoliska, N'Ko, Adlam, Hanifi Rohingya, tibetanska, Devanagari och övriga Indic-skript, javanesiska, thailändska, laotiska, hebreiska, khmer, myanmar, Tai Viet och Meetei Mayek utan att förlita sig på en formare på visarsidan; varje skript är en tillvalsinställning, så befintlig utdata förblir byte-identisk tills den aktiveras, och kopiering/inklistring återställer de ursprungliga tecknen

Automatiska OpenType-typografifunktioner

Valfria formningsbrytare tillämpar automatiskt teckensnittets standard-, diskretionära och historiska ligaturer, kapitäler, oldstyle / lining / proportionella / tabellformiga siffror, upphöjda tecken, nedsänkta tecken, ordningstal, bråk, vetenskapliga nedsänkningar, täljare, nämnare, stilistiska och kontextuella alternativ, lokaliserade former, skiftlägeskänsliga former, struket noll och vertikala alternativ under textutmatning, med textextraktion mappad tillbaka till källtecknen

Kompakt teckensnittsutmatning

Inbäddade teckensnittsprogram är alltid Flate-komprimerade, ett teckensnitt som används på flera sidor bäddas in en gång för hela dokumentet och undergruppstaggar härleds deterministiskt från de glyfer som faktiskt används så att upprepade körningar ger identisk utdata; ett valfritt läge skriver ren ASCII-text med standardteckensnitt som kompakt oinbäddad WinAnsi-text, vilket krymper en sida med ren text från hundratals kilobyte till några få kilobyte

Formning på tillverkarsidan för flera skript

Formning på tillverkarsidan omvandlar Unicode-indatasekvenser till deras Presentation Forms innan PDF-text skickas ut; arabiska täcker hela U+0672-06D5 tabellen för föreningsklasser plus över 40 Forms-A-mappningar, med automatisk ligaturefterbearbetning för LAM-ALEF, YEH-HAMZA + vokaler (U+FBEA-FBFB), Allah (U+FDF2) och Bismillah (U+FDFD); gränssnitt för syriska (GetSyriacJoiningClass), mongoliska (GetMongolianJoiningClass) och Devanagari (GetDevanagariCategory / ApplyDevanagariReorder) låter anropare driva icke-arabiska komplexa skript genom samma GSUB-motor

Automatisk formningspipeline (Phase 8)

Den valfria egenskapen ShapingFeatures + THPDFShapingFeature-enum (sfArabicGSUB / sfCursiveAttachment / sfStandardLigatures / sfContextualLigatures / sfContextualAlternates / sfIndicShaping) upphöjer OpenType GSUB- och GPOS-motorerna till en automatisk pipeline på tillverkarsidan; inbyggd arabisk init / medi / fina / isol, rlig, calt, rclt, GPOS kursiv koppling, latinsk liga / clig samt Devanagari Indic-omorganisering sker när texten skickas ut, med fullständig /ToUnicode omvänd mappning för korrekt kopiering/inklistring

Latin Standard Ligatures + PUA Synthetic Codepoint

Latin Standard Ligatures (ff / fi / fl / ffi / ffl / ſt / st via U+FB00-FB06) skickas ut automatiskt via ApplyLatinLigatureRefinement när sfStandardLigatures är aktiverat; för GSUB-ersättnings-GID utan en naturlig Unicode-kodpunkt - Devanagari-klusterformer, stilistiska alternativ, CJK-ideografiska variationssekvenser - tilldelar AssignSyntheticCodepointForGID en kodpunkt i Private-Use-Area (U+E000-F8FF) med speglad /CIDToGIDMap + /W + /ToUnicode-integration

OpenType GSUB-ersättningsmotor

Varje OpenType GSUB LookupType 1-8 (Single, Multiple, Alternate, Ligature, Contextual, Chained Contextual, Extension, Reverse Chained Contextual) är implementerad som ett gränssnitt för frågor (GetSingleSubstituteGlyph, ApplyLigatureSubstitution, ApplyContextualSubst, ApplyReverseChainedContextualSubst samt Multiple / Alternate / Script / LangSys / Feature-hjälpare); MarkUnicodeGlyphUsed drar in varje ersättningsglyf i TTF-undergrupperaren så att inbäddade teckensnittsundergrupper förblir självförsörjande

XFA Forms + AcroForm-utlösare + Unicode /DR

PDF 1.7 §12.7.6 / §12.7.8 XFA-behållarpaket följer med (eller istället för) statiska /Fields via AddXFAPacket; hela AcroForm formulärfältsutlösarfamiljen (/AA /K Keystroke, /F Format, /V Validate, /C Calculate) exponeras som omslagsmetoder, och RegisterAcroFormFont binder flera Unicode-teckensnitt till en enda AcroForm /DR-resursordbok för flerspråkiga formulärwidgetar

Teckensnittsundergruppering och CJK-PDF-filer

THotPDF.EnableFontSubsetting undergrupperar TrueType-, OpenType-CFF- och CID-keyed CFF-teckensnitt med bibehållna glyf-ID för Type0 / Identity-H-text; CJK-PDF-filer som tidigare bäddade in 14 MB CID-keyed CFF-program levereras nu på 500 KB - 2 MB utan att förlora några renderade glyfer

Inkrementell sparning med flera signaturer

BeginIncrementalUpdate, SaveIncrementalUpdate, MarkDirty och signeringsplatshållarens API:er stöder PDF-uppdateringar med enbart tillägg och arbetsflöden med flera signaturer utan att skriva om tidigare signerade byteintervall

Avancerad PDF-funktionstäckning

  • Versionsspecifika PDF 1.3 / 1.4 / 1.5 / 1.6 / 1.7 + utvalda PDF 2.0 API-kontroller för Catalog, ViewerPreferences, anteckningar, JavaScript, Type0-teckensnitt, ToUnicode-mappningar, transparens, lager och kryptering
  • Efterlevnadskontroller för PDF/A-1 / -2 / -3, PDF/X-1a / -3 / -4 och PDF/UA-1 som avvisar icke-kompatibla funktionsanrop istället för att tyst bryta mot profilen
  • Taggade PDF-strukturträd med rollmappningar, StructParents, ParentTree-utdata och strukturelement för tillgänglighetsorienterade arbetsflöden
  • OutputIntents, ICC-profiler, sidboxar, rotation, UserUnit, Tabs-ordning, plattsättningsmönster, ExtGState alpha, blandningslägen, halvtoner (Type 1 / 5 / 6 / 10 / 16), överföringsfunktioner och svartgenererings- / underfärgsborttagnings-Function-referenser
  • Inbäddade bilder, axiella toningar med flera stopp, radiella toningar, friforms- / gitterforms Gouraud-skuggade triangelmaskor, Coons patch- och tensorprodukt-patchmaskor, soft-mask-bilder för PNG-liknande per-pixel-alfa samt återanvändbara mönsterfyllningar
  • Namngivna destinationer, sidminiatyrer, dispositionstypografi på sidnivå (färg, fetstil, kursiv), namngivet JavaScript-register på dokumentnivå samt hela familjen med extrafunktioner för Line / PolyLine / Polygon (bildtext, linjeavslutningar, syfte, kantbyte)
  • Arabisk formning på tillverkarsidan täcker hela U+0672-06D5 tabellen för föreningsklasser plus över 40 statiska arabiska Presentation Forms-A-mappningar, med ligaturefterbearbetning för LAM-ALEF, YEH-HAMZA + vokalpar (U+FBEA-FBFB), Allah-ligaturen (U+FDF2) och Bismillah-frasen (U+FDFD)
  • Gränssnitt för formningsförmåga för flera skript: syriska (GetSyriacJoiningClass / GetSyriacPosition), mongoliska (GetMongolianJoiningClass / GetMongolianPosition), Devanagari (GetDevanagariCategory / ApplyDevanagariReorder) - driver samma GSUB-motor för komplexa icke-arabiska skript
  • Automatisk Phase 8-formningspipeline driven av tillvalsegenskapen ShapingFeatures: sfArabicGSUB tillämpar inbyggd arabisk init / medi / fina / isol samt rlig / calt / rclt för att generera teckensnittsspecifika kontextuella glyf-ID, sfCursiveAttachment tillämpar GPOS kursiva ankare, sfStandardLigatures / sfContextualLigatures genererar latinsk liga / clig (FB00-FB06: ff / fi / fl / ffi / ffl / ſt / st) och sfIndicShaping omorganiserar Devanagari-kluster (Repha + pre-base I-matra) innan de skickas ut
  • Funktionskomplett OpenType GSUB-ersättningsmotor (LookupType 1-8) med Script / LangSys-val, TTF-undergruppsstängning (MarkUnicodeGlyphUsed), Cmap format 12 SMP-täckning, GDEF-parsning, automatisk generering av ToUnicode CMap med 35 ligaturoskopierade mappningsposter samt en GetUnicodeGlyphForCodepoint-sökning för anropare som driver utmatning glyf-för-glyf
  • PUA syntetisk kodpunktsutmatning (AssignSyntheticCodepointForGID / GetSyntheticCodepointForGID) låter tillverkare skicka ut alla GSUB-ersättnings-GID (Devanagari-klusterformer, stilistiska alternativ, CJK-ideografiska variationssekvenser) genom U+E000-F8FF Private Use Area med speglad /CIDToGIDMap + /W-integration; GetCodepointAdvance exponerar den cachade /W em-fraktionen för radbrytningsberäkningar
  • OpenType GPOS-positioneringsmotor bakom tillvalsinställningar för formning: parvis, enkel och kontextuell (Context / Chained Context) kerning för både vänster-till-höger- och höger-till-vänster-text, mark-to-base / mark-to-mark / mark-to-ligature-placering med komponentnoggrannhet på ligaturer, kursiv in-/utgångskoppling, avståndspositionering samt vkrn / vpal vertikal kerning tillämpad på vertikal textutmatning
  • Formning av komplexa skript på tillverkarsidan för arabiska Supplement / Extended-A / Extended-B, syriska, mongoliska, N'Ko, Adlam, Hanifi Rohingya, tibetansk stapling, Indic-skriptfamiljen via teckensnittets egna Indic-funktionskedja, javanesiska, thailändsk / laotisk teckenordning, hebreisk vokalpunktsordning, khmer, myanmar, Tai Viet och Meetei Mayek, var och en bakom sin egen tillvalsinställning med ToUnicode-omvänd mappning för kopiering/inklistring
  • Automatiska OpenType-typografifunktioner under textutmatning: ligaturer liga / clig / dlig / hlig, kapitäler smcp / c2sc, sifferstilar onum / lnum / pnum / tnum, sups / subs / ordn / frac / sinf / numr / dnom, stilistiska alternativ salt, kontextuella alternativ calt / rclt, lokaliserade former locl, skiftlägesformer case, struket noll zero samt vertikala alternativ vert / vrt2, med kedjade ersättningar återställda till källtexten i ToUnicode CMap
  • Optimering av teckensnittsinbäddning: alltid komprimerade inbäddade teckensnittsprogram, en inbäddad kopia per dokument för teckensnitt som används på flera sidor, deterministiska undergruppstaggar för reproducerbar utdata samt ett valfritt oinbäddat WinAnsi-läge för ren ASCII-text med standardteckensnitt
  • AcroForm-textfält, listrutor, kombinationsrutor, kryssrutor, alternativknappar, tryckknappsåtgärder (inklusive utökade Named / Hide / Show / ImportData / SubmitForm med användarkontrollerade /Flags), signeringsfält och genererade utseendeströmmar (flerradiga + kam + rik text Tx + CID-teckensnitt /AP)
  • AcroForm formulärfältsutlösarfamilj (/AA /K Keystroke, /F Format, /V Validate, /C Calculate) med en omslagsmetod per utlösare; multi-Unicode /DR-teckensnittsregistrering via RegisterAcroFormFont; XFA (XML Forms Architecture) behållarstöd (PDF 1.7 §12.7.6 / §12.7.8) med AddXFAPacket / ClearXFAPackets / XFAPacketCount och efterlevnadskontroller för PDF/A + PDF/X, plus XFA-till-AcroForm-tillplattning (ApplyXFAAsAcroForm för råa XDP-byte, FlattenLoadedXFA för ett inläst PDF-dokuments inbäddade formulär) som förvandlar statisk XFA till inbyggda AcroForm-fält, formatering och sidgrafik så att formuläret förblir synligt och ifyllbart i läsare utan en XFA-motor
  • PDF/UA-1 tillgänglighetsgränssnitt för taggad PDF: §14.8.4 markerade innehållssekvensegenskaper på BeginTaggedContent (/Lang / /Alt / /ActualText / /E), tilldelare för strukturelementattribut (/Lang / /E / /T), Table 333 standardstrukturtypsenum (THPDFStandardStructureType) samt en AddStructureElement typad överlagring
  • Anteckningsstöd för markeringar, fritext, länkar, filbilagor, popup-fönster, redigering, vattenstämpel, rik media, 3D / U3D / PRC, kantstilar samt länkade kommentarspopup-fönster
  • Standard lösenordssäkerhet, AES-128 / AES-256 säkerhetshanterare, PDF 2.0 R6-hashing, kryptering med offentlig nyckel för certifikatmottagare via PKCS#7-kuvert som tillhandahålls av anroparen samt binärsäker hantering av icke-ASCII-färgämnes- / teckensnittsnamn
  • PAdES B-B, B-T, B-LT och B-LTA digitala signaturer med RFC 3161-tidsstämplar, DSS / VRI-ordböcker för långtidsvalidering, dokumenttidsstämpelsignaturer, begränsningar för Seed Value samt XAdES-i-PDF
  • In-process PFX / PKCS#12-signering: ASN.1, RSA, AES, PKCS#12 och CMS SignedData-stacken som medföljer biblioteket signerar en befintlig platshållar-PDF i ett anrop utan något beroende av OpenSSL eller plattformens krypto
  • Drop-in PDF-backends för FastReport 4 / FastReport VCL, QuickReport, ReportBuilder och DevExpress ExpressPrinting System, så att befintliga rapportdefinitioner skickas ut genom HotPDF utan att rapportlayouter behöver skrivas om

Högpresterande komprimerings- och bildbehandlingsstack

Aktuella HotPDF-versioner använder zlib-ng i zlib-kompatibelt läge för den medföljande Flate-backend; sidströmmar, inbäddade teckensnittsströmmar, ToUnicode CMap, Flate-bildströmmar, TIFF-relaterad utdata samt FlateDecode-hjälpare dirigeras genom HotPDF zlib-skiktet

Zlib-ng-versionerna för Win64x och diagnostisk MSVC Win64 inkluderar körtids-CPU-dispatch för SSE2, SSSE3, SSE4.1, SSE4.2, PCLMULQDQ och AVX2-vägar med generella reserver kvar; Win32 förblir på den generella zlib-ng OMF-objektuppsättningen via bcc32c, medan Win32 JPEG- och TIFF-objekt fortsätter att använda den klassiska bcc32 OMF-vägen

Standard JPEG-arbetsflöden använder den medföljande libjpeg-turbo 3.1.90-objektuppsättningen via det libjpeg-kompatibla API som exponeras av HPDFJpeg.pas; de inbyggda versionerna för Win32, Win64 och Win64x inkluderar nu relevanta NASM SIMD-objektuppsättningar, och samma inbyggda JPEG-backend är tillgänglig för TIFF-integreringsskiktet för hantering av JPEG-komprimerad TIFF

C-körtidsbryggan i HPDFCLibs.pas löser nu malloc, free, realloc, calloc, memcpy, memmove och memset genom ett gränssnitt mot Pascal, med 32-bytesjusterad allokering för SIMD-vänliga inbyggda buffertar

Kodarkivet innehåller reproducerbara skript för objektbygge: Lib\thirdparty\build-bcc32.bat, Lib\thirdparty\build-bcc64x.bat och Lib\thirdparty\build-vc64.bat för hela uppsättningen av inbyggda C-bibliotek, plus skript med enbart zlib-ng för fokuserade komprimeringsombyggnader

Snabbt Delphi-exempel

program HelloHotPDF;

uses
  System.SysUtils,
  HPDFDoc;

var
  PDF: THotPDF;
begin
  PDF := THotPDF.Create(nil);
  try
    PDF.AutoLaunch := False;
    PDF.FileName := 'HelloHotPDF.pdf';
    PDF.Compression := cmFlateDecode;
    PDF.EnableFontSubsetting := True;
    PDF.BeginDoc;
    PDF.CurrentPage.SetFont('Arial', [], 18);
    PDF.CurrentPage.TextOut(50, 50, 0, 'Hello HotPDF');
    PDF.EndDoc;
  finally
    PDF.Free;
  end;
end.

Paketinnehåll

Typiska användningsområden