THotPDF.SubsetLoadedFonts Method

Herschrijft ondersteunde ingesloten TrueType-, OpenType CFF-, rauwe CFF- en Type 1-programma's zodat ze alleen glyfen behouden die bereikbaar zijn vanuit geladen documentinhoud

Declaratie

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

Bereikbaarheid

Pagina-inhoud wordt altijd gescand, inclusief tekstweergaveoperatoren en resourcelokale fontselecties

IncludeFormXObjects omvat recursief aangeroepen Form XObjects met overgeërfde resources, cyclusdetectie en een begrensde nestdiepte

IncludeAnnotationAppearances omvat normale, rollover- en ingedrukte uiterlijken evenals statiewoordenboeken, en volgt ook Form XObjects gebruikt door die uiterlijken wanneer ingeschakeld

Elke teken-code volgt zijn gedeclareerde codering, dan elke Type0 CMap en CIDToGIDMap, voordat de stabiele ingesloten glyf-ID wordt bereikt; bestaande CID-mappen en ToUnicode-gegevens worden niet hernummerd

TrueType-samengestelde glyfen behouden hun recursieve componentafsluiting, terwijl COLR v0-lagen en COLR v1-glyfverf-afhankelijkheden elke gerefereerde omtrek behouden

Type 1-eenvoudige fonts volgen Standard-, WinAnsi-, MacRoman- of MacExpert-codering plus Differences, en herschrijven vervolgens ongebruikte CharStrings in PFB-, PDF-split-binary- of hex-PFA-data zonder de ingesloten streamindeling te wijzigen

Opties

VeldStandaardBetekenis
MinimumSavingsBytes1Minimale reductie van gecodeerde stream nodig voordat een kandidaat wordt aangenomen
EnforceSignaturePermissionsTrueWeiger elke herschrijving wanneer het document een handtekeningveld bevat
IncludeFormXObjectsTrueVolg aangeroepen geneste Form XObjects
IncludeAnnotationAppearancesTrueVolg annotatie-uiterlijkstromen en -statussen

Resultaat en veiligheid

De retourwaarde is het aantal herschreven ingesloten fontprogramma's, terwijl AInfo scandekking, mapping- of decodefouten, gebruikte glyfen, bytebesparingen en handtekeninggevolgen rapporteert

Een fontprogramma blijft byte-voor-byte ongewijzigd wanneer een bereikbare code niet kan worden gemapt, zijn formaat niet wordt ondersteund, subsetting faalt, of de gecodeerde kandidaat de besparing drempel mist

Type 1-herschrijving faalt gesloten voor meerdere binaire PFB-segmenten, een niet-parseerbare expliciete eenvoudige-fontcodering, een ontbrekende opgevraagde glyfnaam, of een niet-ondersteunde CharString-indeling; onbekende COLR-versies en sfnt-programma's zonder spaarzame omtrektabellen blijven ook ongewijzigd

Alle kandidaten worden geanalyseerd vóór mutatie, en het standaard handtekeningbeleid geeft nul terug met RefusedBySignaturePolicy ingesteld; het uitschakelen van het beleid staat herschrijving toe en stelt SignaturesInvalidated in wanneer een ondertekend document verandert

Voorbeeld

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

Optimalisatie van resources en afbeeldingen