Type1フォントをTrueTypeに変換 | C# .NET APIソリューション
概要
この記事では、C# を使用して Type1 フォントを TTF に変換する方法 について説明します。以下のトピックを取り上げます。
- Type1 フォントと PostScript での使用について
- C# で Type1 フォントを TrueType フォントに変換する方法
- C# で Type1 フォントを TTF に変換する例
Type 1フォントとPostScriptでの使用について
1980年代にAdobe社が開発したType 1フォントは、デジタルタイポグラフィ、特にデスクトップパブリッシングやグラフィックデザインの分野で重要なコンポーネントです。これらのフォントは、高品質なレンダリングと、印刷業界に革命をもたらしたPostScriptページ記述言語との互換性で広く知られています。
Type 1フォントとは?
Type 1フォントは、スケーラブルで高解像度のテキストレンダリングを可能にするベクターベースのフォント形式です。Type 1フォントは、フォントのベクターアウトラインを含むアウトラインファイル(拡張子は.PFB)と、文字幅やカーニングデータなどのフォントのメトリック情報を提供するメトリックファイル(拡張子は.AFM)の2つの主要ファイルで構成されています。アウトラインとメトリックを分離することで、フォントデータを効率的に保存および操作できます。 ただし、.PFBファイルは*.AFMファイルなしでも使用できます。
Type 1 フォントの利点
スケーラビリティ: ベクターベースの Type 1 フォントは、品質を損なうことなくサイズを変更できます。そのため、小さなテキストから大きなバナーまで、さまざまな用途に最適です。
精度: Type 1 フォントの数学的な定義により、正確なレンダリングが可能になり、印刷物上で文字が鮮明に表示されます。
幅広い互換性: Type 1 フォントは Adobe アプリケーションで広くサポートされており、PostScript 言語に不可欠な要素であるため、プロフェッショナルなタイプセッティングの標準的な選択肢となっています。
豊富な機能: Type 1 フォントは、カーニングや合字などの高度なタイポグラフィ機能をサポートしており、印刷されたテキストの全体的な美観を向上させます。
PostScript における Type 1 フォント
Type 1 フォントは、高品質なテキストのレンダリングに必要な情報を提供するため、PostScript に不可欠な要素です。PostScript ファイルを処理する際、テキストを表示するための指示は、対応する Type 1 フォントファイルにリンクされます。
PostScript ドキュメントでは、Type 1 フォントを参照するコマンドを使用してテキストを定義します。例えば、コマンドは使用するフォント、サイズ、テキストの位置を指定できます。PostScript インタープリタは、Type 1 フォントファイルの情報を使用して、レーザープリンターやイメージセッターなどの出力デバイスにテキストを正確にレンダリングします。
C# で Type1 フォントを TrueType に変換する方法
特定の Type1 フォントを変換するには、そのフォントを含むファイルにそのフォントのみが含まれていて、他の要素は含まれていない必要があります。これは、フォントのみを含む PFB ファイルまたは PS ファイルのいずれかです。実際には、変換に必要なのはこれだけです。
つまり、C# で Type1 フォントを TrueType に変換するには、以下の 2 つの手順のみです。
- 静的メソッド
PsDocument.ConvertType1FontToTTFを呼び出し、ソース Type1 フォント ファイルのパスと目的の TTF 出力パスを渡します。これにより、PsDocumentオブジェクトをインスタンス化することなく変換が実行されます。 - (オプション) 変換後にドキュメントを操作する必要がある場合は、ソース ファイルを使用して
PsDocumentインスタンスを作成します。それ以外の場合は、上記の静的呼び出しで単純な変換に十分です。
Type1フォントからTTFへの変換機能は、弊社のWebアプリケーション Type1 Converter でオンラインでご確認いただけます。
C#でType1フォントをTTFに変換
以下のC#コードスニペットでは、Type1フォントをTrueTypeフォントに変換しています。
1// Convert Type1 font from "*.ps", ".pfa" or ".pfb" file.
2
3//Create ne PsDocument object
4PsDocument doc = new PsDocument();
5
6//Convert Type1 font from the file 'Type1_Arial_Bold.ps' to TTF font in DataDir folder.
7//Exstension of file can be ".pfa", ".pfb", ".ps" or something else. The main thing is that there is a font Type1 inside.
8doc.ConvertType1FontToTTF(DataDir + "Type1_Arial_Bold.ps", OutputDir);Convert Type1 font web application を使えば、Type1 フォントから TTF への変換をオンラインで評価できます。Type1 フォントを TTF に変換し、数秒で結果をダウンロードできます。
サンプルファイルとデータファイルは GitHub からダウンロードできます。