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
| Veld | Standaard | Betekenis |
|---|---|---|
MinimumSavingsBytes | 1 | Minimale reductie van gecodeerde stream nodig voordat een kandidaat wordt aangenomen |
EnforceSignaturePermissions | True | Weiger elke herschrijving wanneer het document een handtekeningveld bevat |
IncludeFormXObjects | True | Volg aangeroepen geneste Form XObjects |
IncludeAnnotationAppearances | True | Volg 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;