THotPDF.SubsetLoadedFonts Método
Reescribe los programas TrueType, OpenType CFF y CFF sin procesar incrustados admitidos para que retengan solo los glifos alcanzables desde el contenido del documento cargado
Declaración
function SubsetLoadedFonts(
const Options: THPDFLoadedFontSubsetOptions;
out AInfo: THPDFLoadedFontSubsetInfo): Integer; overload;
function SubsetLoadedFonts(
out AInfo: THPDFLoadedFontSubsetInfo): Integer; overload;
Alcanzabilidad
El contenido de la página siempre se escanea, incluidos los operadores de muestra de texto y las selecciones de fuentes locales de recursos
IncludeFormXObjects incluye recursivamente los Form XObjects invocados con recursos heredados, detección de ciclos y una profundidad de anidamiento acotada
IncludeAnnotationAppearances incluye las apariencias normal, rollover y down además de los diccionarios de estado, y también sigue los Form XObjects usados por esas apariencias cuando está habilitado
Cada código de carácter sigue su encoding declarado, luego cualquier CMap Type0 y CIDToGIDMap, antes de llegar al ID de glifo incrustado estable; los mapas CID existentes y los datos ToUnicode no se renumeran
Los glifos compuestos TrueType conservan su cierre recursivo de componentes, mientras que las capas COLR v0 y las dependencias de pintura de glifos COLR v1 conservan cada contorno referenciado
Las fuentes simples Type 1 siguen la codificación Standard, WinAnsi, MacRoman o MacExpert más Differences, y después reescriben los CharStrings sin usar en datos PFB, binario partido PDF o PFA hexadecimal sin cambiar la disposición del stream incrustado
Opciones
| Campo | Predeterminado | Significado |
|---|---|---|
MinimumSavingsBytes | 1 | Reducción mínima de flujo codificado requerida antes de adoptar un candidato |
EnforceSignaturePermissions | True | Rechaza toda reescritura cuando el documento contiene un campo de firma |
IncludeFormXObjects | True | Rastrea los Form XObjects anidados invocados |
IncludeAnnotationAppearances | True | Rastrea los flujos y estados de apariencia de anotaciones |
Resultado y seguridad
El valor devuelto es el número de programas de fuentes incrustadas reescritos, mientras que AInfo informa de la cobertura del escaneo, los fallos de mapeo o decodificación, los glifos usados, el ahorro de bytes y las consecuencias para las firmas
Un programa de fuente se deja byte a byte intacto cuando algún código alcanzable no puede mapearse, su formato no está soportado, el subsetting falla o el candidato codificado no llega al umbral de ahorro
La reescritura Type 1 falla de forma cerrada ante varios segmentos binarios PFB, una codificación explícita de fuente simple no parseable, un nombre de glifo solicitado ausente o una disposición de CharString no soportada; las versiones COLR desconocidas y los programas sfnt sin tablas de contorno dispersas también quedan intactos
Todos los candidatos se analizan antes de la mutación, y la política de firmas por defecto devuelve cero con RefusedBySignaturePolicy activado; deshabilitar la política permite la reescritura y activa SignaturesInvalidated siempre que un documento firmado cambie
Ejemplo
var
Info: THPDFLoadedFontSubsetInfo;
begin
PDF.LoadFromFile('input.pdf');
if PDF.SubsetLoadedFonts(Info) > 0 then
PDF.SaveToFile('subset.pdf');
end;