スプレッドシートをレンダリングするためのフォントの構成
考えられる使用シナリオ
Aspose.Cells API は、スプレッドシートを画像形式で表示したり、PDF および XPS 形式に変換したりする機能を提供します。変換の忠実度を最大化するには、スプレッドシートで使用されるフォントがオペレーティング システムのデフォルトのフォント ディレクトリで使用できる必要があります。必要なフォントが存在しない場合、Aspose.Cells API は必要なフォントを使用可能なフォントに置き換えようとします。
フォントの選択
以下は、Aspose.Cells API が舞台裏でたどるプロセスです。
- API は、スプレッドシートで使用されている正確なフォント名に一致するファイル システム上のフォントを見つけようとします。
- API がまったく同じ名前のフォントを見つけられない場合、ワークブックの**DefaultStyle.Font**財産。
- API がブックの下に定義されているフォントを見つけられない場合**DefaultStyle.Font**プロパティで指定されたフォントを使用しようとします。**PdfSaveOptions.DefaultFont**また**ImageOrPrintOptions.DefaultFont**財産。
- API で定義されているフォントが見つからない場合**PdfSaveOptions.DefaultFont**また**ImageOrPrintOptions.DefaultFont**プロパティで指定されたフォントを使用しようとします。**FontConfigs.DefaultFontName**財産。
- API で定義されているフォントが見つからない場合**FontConfigs.DefaultFontName**プロパティを使用すると、使用可能なすべてのフォントから最適なフォントを選択しようとします。
- 最後に、API がファイル システムでフォントを見つけられない場合、Arial を使用してスプレッドシートをレンダリングします。
カスタム フォント フォルダの設定
Aspose.Cells API は、オペレーティング システムの既定のフォント ディレクトリで必要なフォントを検索します。必要なフォントがシステムのフォント ディレクトリにない場合、API はカスタム (ユーザー定義) ディレクトリを検索します。の**FontConfigs**クラスは、以下に詳述するように、カスタム フォント ディレクトリを設定する多くの方法を公開しています。
- FontConfigs.SetFontFolder: この方法は、設定するフォルダーが 1 つしかない場合に便利です。
- FontConfigs.SetFontFolders: この方法は、フォントが複数のフォルダーに存在し、すべてのフォントを 1 つのフォルダーにまとめるのではなく、すべてのフォルダーを個別に設定したい場合に便利です。
- FontConfigs.SetFontSources: このメカニズムは、ユーザーが複数のフォルダー、単一のフォント ファイル、またはバイト配列からフォント データからフォントを読み込みたい場合に便利です。
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Defining string variables to store paths to font folders & font file | |
string fontFolder1 = dataDir + "Arial"; | |
string fontFolder2 = dataDir + "Calibri"; | |
string fontFile = dataDir + "arial.ttf"; | |
// Setting first font folder with SetFontFolder method | |
// Second parameter directs the API to search the subfolders for font files | |
FontConfigs.SetFontFolder(fontFolder1, true); | |
// Setting both font folders with SetFontFolders method | |
// Second parameter prohibits the API to search the subfolders for font files | |
FontConfigs.SetFontFolders(new string[] { fontFolder1, fontFolder2 }, false); | |
// Defining FolderFontSource | |
FolderFontSource sourceFolder = new FolderFontSource(fontFolder1, false); | |
// Defining FileFontSource | |
FileFontSource sourceFile = new FileFontSource(fontFile); | |
// Defining MemoryFontSource | |
MemoryFontSource sourceMemory = new MemoryFontSource(System.IO.File.ReadAllBytes(fontFile)); | |
// Setting font sources | |
FontConfigs.SetFontSources(new FontSourceBase[] { sourceFolder, sourceFile, sourceMemory }); |
フォント置換メカニズム
Aspose.Cells API は、レンダリング目的で代替フォントを指定する機能も提供します。このメカニズムは、変換が必要なマシンで必要なフォントが利用できない場合に役立ちます。ユーザーは、元々必要だったフォントの代わりに、フォント名のリストを提供できます。これを実現するために、Aspose.Cells API は**FontConfigs.SetFontSubstitutes** 2 つのパラメータを受け取るメソッド。最初のパラメータの型は**ストリング**これは、置換する必要があるフォントの名前である必要があります。 2 番目のパラメーターは型の配列です。**ストリング**.ユーザーは、元のフォント名 (最初のパラメーターで指定) の代わりに、フォント名のリストを提供できます。
簡単な使用シナリオを次に示します。
// 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.SetFontSubstitutes("Arial", new string[] { "Times New Roman", "Calibri" }); |
情報収集
上記のメソッドに加えて、Aspose.Cells API は、設定されているソースと置換に関する情報を収集する手段も提供しています。
- **FontConfigs.GetFontSourcesメソッドは型の配列を返しますFontSourceBase指定されたフォント ソースのリストが含まれています。ソースが設定されていない場合、FontConfigs.GetFontSources**メソッドは空の配列を返します。
- FontConfigs.GetFontSubstitutesメソッドは型のパラメータを受け入れますストリング置換を設定したフォント名を指定できるようになりました。指定されたフォント名に代替が設定されていない場合は、**FontConfigs.GetFontSubstitutes**メソッドは null を返します。