THotPDF.SubsetLoadedFonts Method
Skriver om stödda inbäddade TrueType-, OpenType CFF-, råa CFF- och Type 1-program så att de bara behåller glyfer som är nåbara från det inlästa dokumentets innehåll
Deklaration
function SubsetLoadedFonts(
const Options: THPDFLoadedFontSubsetOptions;
out AInfo: THPDFLoadedFontSubsetInfo): Integer; overload;
function SubsetLoadedFonts(
out AInfo: THPDFLoadedFontSubsetInfo): Integer; overload;
Nåbarhet
Sidinnehåll skannas alltid, inklusive textvisande operatorer och resurslokala fontval
IncludeFormXObjects inkluderar rekursivt anropade Form XObjects med ärvda resurser, cykeldetektering och ett begränsat nästningsdjup
IncludeAnnotationAppearances inkluderar normal-, rollover- och down-appearances samt tillståndsordlistor, och följer även de Form XObjects som dessa appearances använder när det är aktiverat
Varje teckenkod följer sin deklarerade encoding, därefter eventuell Type0-CMap och CIDToGIDMap, innan den stabila inbäddade glyf-ID:t nås; befintliga CID-mappningar och ToUnicode-data numreras inte om
Sammansatta TrueType-glyfer behåller sin rekursiva komponentmarkering, medan COLR v0-lager och COLR v1:s paint-beroenden behåller varje refererad kontur
Type 1-enkeltypsnitt följer Standard-, WinAnsi-, MacRoman- eller MacExpert-encoding plus Differences och skriver sedan om oanvända CharStrings i PFB-, PDF-delad binär- eller hex-PFA-data utan att ändra layouten i den inbäddade strömmen
Alternativ
| Fält | Standardvärde | Betydelse |
|---|---|---|
MinimumSavingsBytes | 1 | Minsta krävda minskning av den kodade strömmen innan en kandidat antas |
EnforceSignaturePermissions | True | Avvisar all omskrivning när dokumentet innehåller ett signaturfält |
IncludeFormXObjects | True | Spårar anropade nästlade Form XObjects |
IncludeAnnotationAppearances | True | Spårar annoteringarnas appearance-strömmar och tillstånd |
Resultat och säkerhet
Returvärdet är antalet omskrivna inbäddade fontprogram, medan AInfo rapporterar skanntäckning, mapping- eller avkodningsfel, använda glyfer, byte-besparingar och signaturkonsekvenser
Ett fontprogram lämnas byte för byte oförändrat när nåbar kod inte kan mappas, dess format inte stöds, subsetting misslyckas eller den kodade kandidaten inte når besparingströskeln
Type 1-omskrivning misslyckas säkert vid flera binära PFB-segment, en oparserbar explicit encoding för enkeltypsnitt, ett saknat begärt glyfnamn eller en CharString-layout som inte stöds; okända COLR-versioner och sfnt-program utan sparse-konturtabeller lämnas också oförändrade
Alla kandidater analyseras innan något ändras, och standardpolicyn för signaturer returnerar noll med RefusedBySignaturePolicy satt; avaktiverar man policyn tillåts omskrivning, och SignaturesInvalidated sätts så snart ett signerat dokument ändras
Exempel
var
Info: THPDFLoadedFontSubsetInfo;
begin
PDF.LoadFromFile('input.pdf');
if PDF.SubsetLoadedFonts(Info) > 0 then
PDF.SaveToFile('subset.pdf');
end;