PdfASymbolicFontEncodingStrategy

PdfASymbolicFontEncodingStrategy class

Esta clase describe reglas que se pueden usar para ajustar el proceso de copia de datos de codificación para casos cuando la fuente simbólica TrueType tiene más de una codificación. cmap de la fuente TrueType". ¿A qué se debe este error? Todas las fuentes simbólicas TrueType tienen una tabla especial “cmap” en sus datos internos. Esta tabla asigna códigos de caracteres a índices de glifos. Y esta tabla podría contener diferentes subtablas de codificación que describen las codificaciones utilizadas. Consulte información avanzada sobre las tablas cmap en https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6cmap.html. Por lo general, la tabla cmap contiene varias subtablas de codificación, pero el estándar PDF/A requiere que solo una codificación la subtabla (3,0) debe dejarse para esta fuente en el documento PDF/A. Y la pregunta clave aquí: ¿qué datos se deben tomar de otras subtablas para copiar en la tabla de codificación de destino (3,0)? La mayoría de las fuentes tienen tablas cmap ‘bien formadas’ donde cada subtabla de codificación es totalmente consistente con otra subtabla. Pero algunas fuentes tienen tablas cmap con colisiones, donde, por ejemplo, una subtabla tiene un índice de glifos 100 para Unicode 100, pero otra subtabla tiene un índice de glifos 200 para el mismo Unicode 100. Para resolver este problema, se necesita una estrategia especial. Por defecto se utiliza la siguiente estrategia: se busca mac subtable(1,0). Si se encuentra esta tabla, solo se utilizan estos datos para llenar la tabla destino (3,0). Si no se encuentra la subtabla mac, todas las subtablas excepto (3,0) se iteran y se usan para copiar datos en la subtabla de destino (3,0). Además, la asignación para cada Unicode (Unicode, índice de glifos) se copia en la tabla de destino solo si la tabla de destino no tiene este Unicode en el momento actual. Entonces, por ejemplo, si la primera subtabla tiene el índice de glifo 100 para Unicode 100 y la siguiente subtabla tiene el índice glyph 200 para el mismo Unicode 100, solo se copiarán los datos de la primera subtabla (Unicode = 100, índice de glifo = 100). Por lo tanto, cada subtabla anterior tiene prioridad sobre la siguiente. Propiedades de esta clasePdfASymbolicFontEncodingStrategyayudar a ajustar el comportamiento predeterminado. Si propiedadPreferredCmapEncodingTable de tipoCMapEncodingTableType está configurado, luego se usará la subtabla relevante en precedencia a la subtabla mac (1,0). Valor ‘MacTable’ from enumeraciónCMapEncodingTableType no tiene sentido en este caso, porque apunta en la misma subtabla mac (1,0) que se usará por defecto. PropiedadCmapEncodingTablesPriorityQueue descarta todas las prioridades para cualquier subtabla. Si se establece esta propiedad, solo se utilizarán las subtablas de la cola declarada en el orden especificado. Si no se encuentran las subtablas especificadas, se utilizará la iteración predeterminada de todas las subtablas y la estrategia de copia descrita anteriormente . ObjetoQueueItem especifica la subtabla de codificación utilizada. Esta subtabla se puede establecer mediante una combinación de miembros (PlatformID, PlatformSpecificId) o medianteCMapEncodingTableType enumeración.

public class PdfASymbolicFontEncodingStrategy

Constructores

NombreDescripción
PdfASymbolicFontEncodingStrategy()Constructor. Establece la subtabla predeterminada (mac 1,0)
PdfASymbolicFontEncodingStrategy(CMapEncodingTableType)Constructor
PdfASymbolicFontEncodingStrategy(Queue<QueueItem>)Constructor

Propiedades

NombreDescripción
CmapEncodingTablesPriorityQueue { get; set; }Especifica la cola de subtablas de codificación para procesar.
PreferredCmapEncodingTable { get; set; }Especifica la subtabla que se usará antes que la subtabla mac(1,0). Valor ‘MacTable’ from enumeraciónCMapEncodingTableType no tiene sentido en este caso.

Ver también