Configuración de fuentes para la representación de hojas de cálculo

Escenarios de uso posibles

Las API de Aspose.Cells proporcionan la capacidad de representar las hojas de cálculo en formatos de imagen, así como convertirlas a formatos PDF y XPS. Para maximizar la fidelidad de la conversión, es necesario que las fuentes utilizadas en la hoja de cálculo estén disponibles en el directorio de fuentes predeterminado del sistema operativo. En caso de que las fuentes requeridas no estén presentes, las API de Aspose.Cells intentarán sustituir las fuentes requeridas por las disponibles.

Selección de Fuentes

A continuación se presenta el proceso que las API de Aspose.Cells siguen detrás de escena.

  1. La API intenta encontrar las fuentes en el sistema de archivos que coincidan con el nombre de fuente exacto utilizado en la hoja de cálculo.
  2. Si la API no puede encontrar las fuentes con el nombre exacto, intenta utilizar la fuente predeterminada especificada en la propiedad DefaultStyle.Font del libro de trabajo.
  3. Si la API no puede localizar la fuente definida en la propiedad DefaultStyle.Font del libro de trabajo, intenta usar la fuente especificada en la propiedad PdfSaveOptions.DefaultFont o ImageOrPrintOptions.DefaultFont.
  4. Si la API no puede localizar la fuente definida en las propiedades PdfSaveOptions.DefaultFont o ImageOrPrintOptions.DefaultFont, intenta usar la fuente especificada en la propiedad FontConfigs.DefaultFontName.
  5. Si la API no puede localizar la fuente definida en la propiedad FontConfigs.DefaultFontName, intenta seleccionar las fuentes más adecuadas de todas las fuentes disponibles.
  6. Por último, si la API no puede encontrar ninguna fuente en el sistema de archivos, representa la hoja de cálculo utilizando Arial.

Establecer Carpetas de Fuentes Personalizadas

Las API Aspose.Cells buscan el directorio de fuentes predeterminado del sistema operativo para las fuentes requeridas. En caso de que las fuentes requeridas no estén disponibles en el directorio de fuentes del sistema, las APIs buscarán en los directorios personalizados (definidos por el usuario). La clase FontConfigs ha expuesto varias formas de establecer directorios de fuentes personalizados como se detalla a continuación.

  1. FontConfigs.setFontFolder: Este método es útil si solo hay una carpeta que se va a establecer.
  2. FontConfigs.setFontFolders: Este método es útil cuando las fuentes residen en varias carpetas y el usuario desea establecer todas las carpetas por separado en lugar de combinar todas las fuentes en una sola carpeta.
  3. FontConfigs.setFontSources: Este mecanismo es útil cuando el usuario desea cargar fuentes desde varias carpetas o un solo archivo de fuente o datos de fuente de un array de bytes.

Mecanismo de Sustitución de Fuentes

Las APIs Aspose.Cells también proporcionan la capacidad de especificar la fuente de sustitución para fines de renderizado. Este mecanismo es útil cuando una fuente requerida no está disponible en la máquina donde se va a realizar la conversión. Los usuarios pueden proporcionar una lista de nombres de fuentes como alternativa a la fuente originalmente requerida. Para lograr esto, las APIs Aspose.Cells han expuesto el método FontConfigs.setFontSubstitutes que acepta 2 parámetros. El primer parámetro es de tipo String, que debe ser el nombre de la fuente que debe ser sustituida. El segundo parámetro es una matriz de tipo String. Los usuarios pueden proporcionar una lista de nombres de fuentes como sustitutos de la fuente original (especificada en el primer parámetro).

Aquí hay un escenario de uso simple.

 //Substituting the Arial font with Times New Roman & Calibri

FontConfigs.setFontSubstitutes("Arial", new String[] { "Times New Roman", "Calibri" });

Recopilación de información

Además de los métodos mencionados anteriormente, las APIs de Aspose.Cells también han proporcionado medios para recopilar información sobre qué fuentes y sustituciones se han establecido.

  1. FontConfigs.getFontSources: Este método devuelve una matriz de tipo FontSourceBase que contiene la lista de fuentes especificadas. En caso de que no se hayan establecido fuentes, el método FontConfigs.getFontSources devolverá una matriz vacía.
  2. FontConfigs.getFontSubstitutes: Este método acepta un parámetro de tipo String que permite especificar el nombre de la fuente para la cual se ha establecido la sustitución. En caso de que no se haya establecido ninguna sustitución para el nombre de fuente especificado, entonces el método FontConfigs.getFontSubstitutes devolverá null.