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
| Felt | Standardværdi | Betydning |
|---|---|---|
MinimumSavingsBytes | 1 | Mindste kodede strømreduktion, der kræves, før en kandidat antages |
EnforceSignaturePermissions | True | Afslår enhver omskrivning, når dokumentet indeholder et signaturfelt |
IncludeFormXObjects | True | Spor invokerede indlejrede Form XObjects |
IncludeAnnotationAppearances | True | Spor 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;