Configuración de fuentes para la representación de hojas de cálculo
Escenarios de uso posibles
Aspose.Cells para Python via .NET API proporciona la capacidad de representar 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, la API Aspose.Cells para Python via .NET intentará sustituir las fuentes requeridas con las disponibles.
Selección de Fuentes
A continuación se muestra el proceso que sigue Aspose.Cells para Python via .NET detrás de escena.
- 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.
- 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.
- 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.default_font o ImageOrPrintOptions.default_font.
- Si la API no puede localizar la fuente definida en las propiedades PdfSaveOptions.default_font o ImageOrPrintOptions.default_font, intenta usar la fuente especificada en la propiedad FontConfigs.default_font_name.
- Si la API no puede localizar la fuente definida en la propiedad FontConfigs.default_font_name, intenta seleccionar las fuentes más adecuadas de todas las fuentes disponibles.
- 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
Aspose.Cells para Python via .NET busca en el directorio de fuentes predeterminado del sistema operativo las fuentes requeridas. En caso de que las fuentes no estén disponibles en el directorio del sistema, las API buscan en los directorios personalizados (definidos por el usuario). La clase FontConfigs ha expuesto varias formas de configurar directorios de fuentes personalizadas, como se detalla abajo.
- FontConfigs.set_font_folder: Este método es útil si solo hay una carpeta que se va a establecer.
- FontConfigs.set_font_folders: 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.
- FontConfigs.set_font_sources: 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.
from aspose.cells import FileFontSource, FolderFontSource, FontConfigs, MemoryFontSource | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# The path to the documents directory. | |
dataDir = RunExamples.GetDataDir(".") | |
# Defining string variables to store paths to font folders & font file | |
fontFolder1 = dataDir + "Arial" | |
fontFolder2 = dataDir + "Calibri" | |
fontFile = dataDir + "arial.ttf" | |
# Setting first font folder with SetFontFolder method | |
# Second parameter directs the API to search the subfolders for font files | |
FontConfigs.set_font_folder(fontFolder1, True) | |
# Setting both font folders with SetFontFolders method | |
# Second parameter prohibits the API to search the subfolders for font files | |
FontConfigs.set_font_folders([fontFolder1, fontFolder2], False) | |
# Defining FolderFontSource | |
sourceFolder = FolderFontSource(fontFolder1, False) | |
# Defining FileFontSource | |
sourceFile = FileFontSource(fontFile) | |
# Defining MemoryFontSource | |
sourceMemory = MemoryFontSource(open(fontFile, "rb").read()) | |
# Setting font sources | |
FontConfigs.set_font_sources([sourceFolder, sourceFile, sourceMemory]) |
Mecanismo de Sustitución de Fuentes
La API Aspose.Cells para Python via .NET también ofrece la capacidad de especificar la fuente de sustitución para fines de renderizado. Este mecanismo es útil cuando la fuente requerida no está disponible en la máquina donde se realiza la conversión. Los usuarios pueden proporcionar una lista de nombres de fuentes como alternativa a la fuente originalmente requerida. Para lograr esto, Aspose.Cells para Python via .NET ha expuesto el método FontConfigs.set_font_substitutes que acepta 2 parámetros. El primer parámetro es de tipo string, que debe ser el nombre de la fuente que necesita ser sustituida. El segundo parámetro es un arreglo de tipo string. Los usuarios pueden proporcionar una lista de nombres de fuentes como sustitución del nombre de fuente original (especificado en el primer parámetro).
Aquí hay un escenario de uso simple.
from aspose.cells import FontConfigs | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# Substituting the Arial font with Times New Roman & Calibri | |
FontConfigs.set_font_substitutes("Arial", ["Times New Roman", "Calibri" ]) |
Recopilación de información
Además de los métodos mencionados, Aspose.Cells para Python via .NET también ha proporcionado medios para recopilar información sobre las fuentes y las sustituciones que se han configurado.
- El método FontConfigs.get_font_sources devuelve un array de tipo FontSourceBase que contiene la lista de fuentes especificadas. En caso de que no se hayan establecido fuentes, el método FontConfigs.get_font_sources devolverá un array vacío.
- El método FontConfigs.get_font_substitutes acepta un parámetro de tipo string que permite especificar el nombre de la fuente para la cual se ha establecido una sustitución. En caso de que no se haya establecido una sustitución para el nombre de fuente especificado, entonces el método FontConfigs.get_font_substitutes devolverá nulo.