スプレッドシートのレンダリングのためのフォントの設定
可能な使用シナリオ
Aspose.Cells for Python via .NETのAPIは、スプレッドシートを画像フォーマットにレンダリングしたり、PDFやXPSフォーマットに変換する機能を提供します。変換の忠実性を最大化するには、スプレッドシートで使用されるフォントがOSの標準フォントディレクトリにある必要があります。必要なフォントがない場合、Aspose.Cells for Python via .NETのAPIは利用可能なフォントで代替しようとします。
フォントの選択
以下は、Aspose.Cells for Python via .NET APIが裏で実行する処理です。
- API は、スプレッドシートで使用されている正確なフォント名と一致するフォントをファイルシステムで検索しようとします。
- API が正確な同じ名前のフォントを見つけられない場合、ワークブックの DefaultStyle.font プロパティで指定されたデフォルトフォントを使用しようとします。
- API がワークブックの DefaultStyle.font プロパティで定義されたフォントを見つけられない場合、PdfSaveOptions.default_font または ImageOrPrintOptions.default_font プロパティで指定されたフォントを使用しようとします。
- API が PdfSaveOptions.default_font または ImageOrPrintOptions.default_font プロパティで定義されたフォントを見つけられない場合、FontConfigs.default_font_name プロパティで指定されたフォントを使用しようとします。
- API が FontConfigs.default_font_name プロパティで定義されたフォントを見つけられない場合、利用可能なすべてのフォントから最適なフォントを選択しようとします。
- 最終的に API がファイルシステムでフォントを見つけられない場合、Arial を使用してスプレッドシートをレンダリングします。
カスタムフォントフォルダの設定
Aspose.Cells for Python via .NETのAPIは、必要なフォントをOSの既定フォントディレクトリから検索します。必要なフォントが見つからない場合は、カスタム(ユーザー定義)ディレクトリを検索します。FontConfigsクラスは、カスタムフォントディレクトリを設定するいくつかの方法を公開しています。詳細は以下に示します。
1.FontConfigs.set_font_folder: このメソッドは1つのフォルダだけを設定する場合に有用です。 1.FontConfigs.set_font_folders: このメソッドは、フォントが複数のフォルダに存在し、ユーザーがすべてのフォルダを単一のフォルダにまとめるのではなく、それぞれ別々に設定したい場合に有用です。 1.FontConfigs.set_font_sources: このメカニズムは、ユーザーが複数のフォルダからフォントを読み込む場合や、単一のフォントファイルやバイト配列からフォントデータを読み込みたい場合に有用です。
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]) |
フォントの代替メカニズム
Aspose.Cells for Python via .NETのAPIは、レンダリング目的のために代替フォントを指定する機能も提供しています。この仕組みは、変換を行うマシンに必要なフォントがない場合に役立ちます。ユーザーは、元のフォントの代わりにするフォント名のリストを提供できます。これを実現するため、Aspose.Cells for Python via .NETのAPIは、2つのパラメータを受け取るFontConfigs.set_font_substitutesメソッドを公開しています。最初のパラメータはstring型で、置換に必要なフォント名です。2つ目のパラメータはstring型のリストで、元のフォント名の代替となるフォント名のリストを提供できます。
以下は単純な使用シナリオです。
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" ]) |
情報収集
上記の方法に加えて、Aspose.Cells for Python via .NET APIは、設定されたソースや置換情報を収集する手段も提供しています。
- FontConfigs.get_font_sourcesメソッドは、指定されたフォントソースのリストを含むFontSourceBase型の配列を返します。ソースが設定されていない場合は、FontConfigs.get_font_sourcesメソッドは空の配列を返します。
- FontConfigs.get_font_substitutesメソッドは、指定されたフォント名の代替が設定されていることを許可するstring型のパラメータを受け入れます。指定されたフォント名のための代替が設定されていない場合、FontConfigs.get_font_substitutesメソッドはnullを返します。