フォント変換。高度な詳細| .NET
場合によっては、フォントを保存する前に変換されたフォントデータを読み取り/変更する感覚があります。
方法 aspose.font.font.convert(fonttype fonttype)は、そのような場合のために設計されました。この方法は、フォントを指定された型に変換し、 aspose.font.fontクラスから継承されたオブジェクトを返します。 fonttype値に対応し、 convert()メソッドに渡されます。
次の表は、 fonttype値とオブジェクトの間のコヒーレンスのマップを示しています。
| フォントタイプ | フォントオブジェクト |
|---|---|
TTF | Aspose.Font.Ttf.TtfFont |
Type1 | Aspose.Font.Type1.Type1Font |
CFF | Aspose.Font.Cff.CffFont |
OTF | Aspose.Font.Ttf.TtfFont |
結果のフォントを保存する前に、または結果のフォントを保存する代わりに、結果のフォントオブジェクトを使用してフォントプロパティにアクセス/変更します。
現在の瞬間にメソッド
convert()はtrueTypeフォント形式(fonttype.ttf)にのみ変換をサポートしているため、常に返されます
使用されるソースフォントとは無関係に変換の結果として、
ttffontのオブジェクト。
次のコードスニペットは、ディスクからCFFフォント「CenturyGothic」をロードし、trueType形式に変換し、変換されたフォントの名前を「CenturyGothic_Converted」に変更します。
次のアクションを満たす:
- ソース CFF フォントをロード –
- データディレクトリ定数を使用して、ソースファイルへの絶対パスを構築します。
1string fontPath = Path.Combine(DataDir, "CenturyGothic.cff");これにより、オペレーティングシステムに関係なく、正しいファイルの場所が確保されます。
- Aspose.Font に物理ファイル形式 (
"cff") を伝え、ファイルのストリームソースを提供するFontFileDefinitionを作成します。
1var fontFileDef = new FontFileDefinition("cff", new FileSystemStreamSource(fontPath));- 必要なフォントタイプ (
FontType.CFF) と、以前に作成したfontFileDefを組み合わせたFontDefinitionを構築します。
1var fontDefinition = new FontDefinition(FontType.CFF, fontFileDef);Font.Open(fontDefinition)を使用してフォントを開きます。このメソッドは、読み込まれた CFF フォントを表す汎用のFontインスタンスを返します。このインスタンスは、以降の変換手順で使用できます。
- フォントを TrueType に変換 –
- 以前に読み込んだ
Fontオブジェクトに対して変換メソッドを呼び出します。
1Aspose.Font.Font convertedFont = font.Convert(FontType.TTF);Convertメソッドは、ソース CFF データを読み取り、変換アルゴリズムを適用して、内部的に TrueType フォント (TtfFont) を表す新しいAspose.Font.Fontインスタンスを返します。- この汎用の
convertedFontは、さらに具体的なAspose.Font.Ttf.TtfFont型にキャストして、TrueType 固有のプロパティにアクセスできます。
- 結果を具体的なTrueTypeクラスにキャストし、名前を変更します –
- 汎用の
convertedFontを具体的なTrueTypeクラスに安全にキャストします。
1Aspose.Font.Ttf.TtfFont destFont = convertedFont as Aspose.Font.Ttf.TtfFont;- キャストが成功したことを確認します(
destFont != null)。キャストに失敗した場合は、エラーを適切に処理します。 - 変換されたフォントに新しい名前を設定します。
1destFont.FontName = "CenturyGothic_Converted";- これにより、内部のフォント名メタデータが更新され、保存されたファイルに反映されます。
- 出力ファイルパスの準備 –
- 出力ファイル名を選択します(例:
"CffToTtf_out.ttf")。 - 出力ディレクトリ定数を使用して、完全な出力パスを構築します。
1string outPath = Path.Combine(OutputDir, "CffToTtf_out.ttf");Path.Combineは、プラットフォーム間で正しいパス区切り文字を使用し、ディレクトリ名とファイル名を安全に連結します。
- 変換された TrueType フォントを保存 –
- 名前を変更した TrueType フォントをディスクに保存します。
1destFont.Save(outPath);- 保存後、必要に応じてファイルが作成されたかどうかを確認できます。
1bool exists = System.IO.File.Exists(outPath);outPathまたは存在チェックをログに記録すると、変換と保存が成功したことを確認できます。
1
2 // CFFフォントを開きます
3 string fontpath = path.combine(datadir、 "Centurygothic.cff");
4 fontdefinition fontdefinition = new fontdefinition(fonttype.cff、new fontfileDefinition( "cff"、new FilessystemStymStreamSource(fontpath)));
5 font font = font.open(fontdefinition);
6
7 // Convert font into TrueType format and cast font returned to Aspose.Font.Ttf.TtfFont
8 Aspose.Font.Ttf.TtfFont destFont = font.Convert(FontType.TTF) as Aspose.Font.Ttf.TtfFont;
9
10 // Change name of converted font
11 destFont.FontName = "CenturyGothic_Converted";
12
13 // Ttf output settings
14 string outPath = Path.Combine(OutputDir, "CffToTtf_out.ttf");
15
16 // Save resultant font with font name changed
17 destFont.Save(outPath);Aspose.font for.netを使用するためのすべての例は、 aspose.examplesフォルダーの aspose.font.examples.slnソリューションに配置されます。