THotPDF.SubsetLoadedFonts Method

Omskriver understøttede indlejrede TrueType-, OpenType CFF-, rå CFF- og Type 1-programmer, så de kun beholder glyphs, der kan nås fra det indlæste dokuments indhold

Deklaration

function SubsetLoadedFonts(
    const Options: THPDFLoadedFontSubsetOptions;
    out AInfo: THPDFLoadedFontSubsetInfo): Integer; overload;
function SubsetLoadedFonts(
    out AInfo: THPDFLoadedFontSubsetInfo): Integer; overload;

Nåbarhed

Sideindhold scannes altid, inklusive tekstvisende operatorer og ressourcelokale fontvalg

IncludeFormXObjects inkluderer rekursivt invokerede Form XObjects med nedarvede ressourcer, cyklusdetektion og en afgrænset nestingdybde

IncludeAnnotationAppearances inkluderer normal-, rollover- og down-appearances samt state dictionaries og følger også de Form XObjects, disse appearances bruger, når det er aktiveret

Hvert tegnkode følger sin erklærede encoding, derefter eventuel Type0 CMap og CIDToGIDMap, før det stabile indlejrede glyph-id nås; eksisterende CID-maps og ToUnicode-data nummereres ikke om

TrueType composite glyphs bevarer deres rekursive komponent-lukning, mens COLR v0-lag og COLR v1 glyph paint-afhængigheder beholder alle refererede konturer

Type 1 simple fonts følger Standard-, WinAnsi-, MacRoman- eller MacExpert-encoding plus Differences og omskriver derefter ubrugte CharStrings i PFB-, PDF split binary- eller hex PFA-data uden at ændre det indlejrede strøm-layout

Indstillinger

FeltStandardværdiBetydning
MinimumSavingsBytes1Mindste kodede strømreduktion, der kræves, før en kandidat antages
EnforceSignaturePermissionsTrueAfslår enhver omskrivning, når dokumentet indeholder et signaturfelt
IncludeFormXObjectsTrueSpor invokerede indlejrede Form XObjects
IncludeAnnotationAppearancesTrueSpor annotations appearance-strømme og -tilstande

Resultat og sikkerhed

Returværdien er antallet af omskrevne indlejrede fontprogrammer, mens AInfo rapporterer scanningsdækning, mapping- eller afkodningsfejl, brugte glyphs, bytebesparelser og signaturkonsekvenser

Et fontprogram efterlades byte for byte uændret, når en nåbar kode ikke kan mappes, dets format ikke understøttes, subsetting fejler, eller den kodede kandidat ikke opfylder besparelsestærsklen

Type 1-omskrivning fejler lukket ved flere binære PFB-segmenter, en uparsbar eksplicit simple-font-encoding, et manglende anmodet glyph-navn eller et ikke-understøttet CharString-layout; ukendte COLR-versioner og sfnt-programmer uden sparse outline-tabeller forbliver også uændrede

Alle kandidater analyseres, før der muteres, og standardens signaturpolitik returnerer nul med RefusedBySignaturePolicy sat; deaktiveres politikken, tillades omskrivning, og SignaturesInvalidated sættes, hver gang et signeret dokument ændres

Eksempel

var
  Info: THPDFLoadedFontSubsetInfo;
begin
  PDF.LoadFromFile('input.pdf');
  if PDF.SubsetLoadedFonts(Info) > 0 then
    PDF.SaveToFile('subset.pdf');
end;

Optimering af ressourcer og billeder