Konfigurera teckensnitt för rendering av kalkylblad med Node.js via C++
Möjliga användningsscenario
Aspose.Cells API:er ger möjlighet att rendera kalkylblad i bildformat samt konvertera dem till PDF- och XPS-format. För att maximera konverteringskvaliteten är det nödvändigt att de teckensnitt som används i kalkylbladet finns tillgängliga i operativsystemets standardfontkatalog. Om de nödvändiga teckensnitten inte finns, kommer Aspose.Cells API:er att försöka ersätta de nödvändiga teckensnitten med de tillgängliga.
Val av teckensnitt
Nedan är processen som Aspose.Cells API: er följer bakom scenen.
- API försöker hitta teckensnitten på filsystemet som matchar det exakta teckensnittsnamnet som används i kalkylbladet.
- Om API inte kan hitta teckensnitten med det exakta namnet försöker det använda standardteckensnittet som anges under arbetsbokens DefaultStyle.getFont() egenskap.
- Om API inte kan hitta teckensnittet som definieras under arbetsbokens DefaultStyle.getFont() egenskap försöker det använda teckensnittet som anges under PdfSaveOptions.getDefaultFont() eller ImageOrPrintOptions.getDefaultFont() egenskap.
- Om API inte kan hitta teckensnittet som definieras under PdfSaveOptions.getDefaultFont() eller ImageOrPrintOptions.getDefaultFont() egenskap försöker den använda teckensnittet som anges under FontConfigs.getDefaultFontName() egenskap.
- Om API inte kan hitta teckensnittet som definieras under FontConfigs.getDefaultFontName() egenskapen försöker det välja de mest lämpliga teckensnitten från alla tillgängliga teckensnitt.
- Slutligen, om API inte hittar några teckensnitt på filsystemet, renderar den kalkylbladet med Arial.
Ange anpassade typsnittsmappar
Aspose.Cells API söker i operativsystemets standardfontkatalog efter de nödvändiga teckensnitten. Om de inte finns där, söker API:erna i anpassade (användardefinierade) kataloger. Klassen FontConfigs har exponerat flera sätt att ange anpassade fontkataloger som beskrivs nedan.
- FontConfigs.setFontFolder(string, boolean): Metoden är användbar om det endast finns en mapp att ange.
- **FontConfigs.setFontFolders(string[], boolean)**: Metoden är användbar när typsnitten finns i flera mappar och användaren vill ange alla mapparna separat istället för att kombinera alla typsnitt i en enda mapp.
- **FontConfigs.setFontSources(FontSourceBase[])**: Mekanismen är användbar när användaren vill ladda typsnitt från flera mappar eller en enda typsnittsfil eller typsnittsdata från en byte-array.
const AsposeCells = require("aspose.cells.node");
const path = require("path");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
// Defining string variables to store paths to font folders & font file
const fontFolder1 = path.join(dataDir, "Arial");
const fontFolder2 = path.join(dataDir, "Calibri");
const fontFile = path.join(dataDir, "arial.ttf");
// Setting first font folder with SetFontFolder method
// Second parameter directs the API to search the subfolders for font files
AsposeCells.FontConfigs.setFontFolder(fontFolder1, true);
// Setting both font folders with SetFontFolders method
// Second parameter prohibits the API to search the subfolders for font files
AsposeCells.FontConfigs.setFontFolders([fontFolder1, fontFolder2], false);
// Defining FolderFontSource
const sourceFolder = new AsposeCells.FolderFontSource(fontFolder1, false);
// Defining FileFontSource
const sourceFile = new AsposeCells.FileFontSource(fontFile);
// Defining MemoryFontSource
const sourceMemory = new AsposeCells.MemoryFontSource(require("fs").readFileSync(fontFile));
// Setting font sources
AsposeCells.FontConfigs.setFontSources([sourceFolder, sourceFile, sourceMemory]);
Mekanism för typsnittsutbyte
Aspose.Cells API:er ger också möjlighet att specificera ersättningsteckensnitt för rendering. Denna mekanism är användbar när ett nödvändigt teckensnitt inte finns på maskinen där konverteringen sker. Användare kan ange en lista med teckensnittsnamn som ett alternativ till det ursprungliga nödvändiga teckensnittet. För att göra detta har Aspose.Cells API:er exponerat metoden **FontConfigs.setFontSubstitutes(string, string[])** som tar emot 2 parametrar. Den första är av typen string, vilken är namnet på teckensnittet som ska ersättas. Den andra är en array av typen string, där användare kan ange en lista med teckensnittsnamn som ersättning för det ursprungliga teckensnittet (specificerat i den första parametern).
Här är ett enkelt användningsscenario.
const AsposeCells = require("aspose.cells.node");
const path = require("path");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const filePath = path.join(dataDir, "sample.xlsx");
// Loads the workbook which contains hidden external links
const workbook = new AsposeCells.Workbook(filePath);
// Substituting the Arial font with Times New Roman & Calibri
AsposeCells.FontConfigs.setFontSubstitutes("Arial", ["Times New Roman", "Calibri"]);
Informationssamling
Förutom ovan nämnda metoder har Aspose.Cells API:er även tillhandahållit möjligheter att samla information om vilka källor och ersättningar som har ställts in.
- FontConfigs.getFontSources() metoden returnerar en array av typen FontSourceBase som innehåller listan över angivna fontkällor. Om inga källor har ställts in, returnerar metoden FontConfigs.getFontSources() en tom array.
- FontConfigs.getFontSubstitutes(string) metoden tar emot en parameter av typen string för att specificera teckensnittnamnet för vilket ersättning har ställts in. Om ingen ersättning har ställts in för det angivna teckensnittet, returnerar metod FontConfigs.getFontSubstitutes(string) null.