2017-05-12 22 views
13

私は、JUCEにフォントを埋め込むための簡単なステップバイステップのソリューションを探しています。JUCEにフォントを埋め込む

私のアプリにフォントを埋め込むのに苦労しています(アプリリリースの前にこれを入れるのを忘れていましたが、私のアプリはユーザーシステムにフォントを表示していません。

私は、件名で入手可能なすべての投稿を検索して追跡しましたが、問題はまだ解決していません。私は、私たちが作成し、ProJucerのGUIコンポーネントを介してレイアウトした、私のアプリに既に存在するラベルに埋め込みフォントを追加することになりたいと思います。 "EmbeddedFont:"

を、それがBinaryData

2)作成した私はと呼ばれるクラスに追加されるように

1)私のProJucerセッションにフォントを追加しました:私はこれまで何をやったか

#include "../JuceLibraryCode/JuceHeader.h" 

class EmbeddedFonts 
{ 
private: 
    Font calistoMT; 

public: 
    EmbeddedFonts(); 
    Font& getCalistoMT(); 
}; 

EmbeddedFonts::EmbeddedFonts() 
{ 
    // in the line below is where I'm getting the assertion error: jassert (typefaceName.isNotEmpty()); 
    calistoMT = Font(Typeface::createSystemTypefaceFor(BinaryData::Calisto_MT, 
                 BinaryData::Calisto_MTSize)); 
} 

Font& EmbeddedFonts::getCalistoMT() 
{ 
    return calistoMT; 
} 

3)は、私のGUI COMPのヘッダに、このインスタンスを製onentクラス 4)は、ラベルのフォントにこのフォントを渡してみました。ここから何をすべきか、本当にわからない

genericLabelName->setFont(embeddedFont.getCalistoMT()); 

を。また、埋め込まれたフォントが動作するようになったら、projucer GUIコンポーネントのフォントフィールドに何か具体的なことはありますか?私は同じフォントに設定する必要がありますか?技術的には、コンストラクタでフォントを2回設定することになります(GUIコンポーネントオプションのドロップダウンメニューから1回、埋め込みフォントを手作業で1回)。

これを数日間試したが、まだ問題があります。助けてくれてありがとう。これは私の次のアプリのアップデートをリリースする前にやる必要がある最後のものなので、どんな支援も大歓迎です。

+0

フォントを作成した後、 'calistoMT-> setTypefaceName(" font "からの" typeface name "と' setTypefaceStyle() 'を試しましたか?フォントをブラウズし、指定した書体がフォントがサポートしているものであることを確認します。 –

+0

私はその時にそれを試していない、私はあなたがそれを言及した現在の人と一緒に遊んでいるが、私はまだ同じジャサートを受けています。アサーション: 'jassert(typefaceName.isNotEmpty());'は、typeFaceNameに何らかのテキストが含まれているため、そのテキストがポップアップしていると信じています。ジャセートはまだポップアップしています。 –

+0

また、Projucerでラベルを削除してコードで追加することに反対しているわけではありません。 –

答えて

0

JUCE側で正しく動作しているように見えるので、ロードしようとしているフォントファイルには名前が関連付けられていないと思います。私は、次のことをしようとするだろう:

  • あなたはFontコンストラクタに渡す前に、あなたのcreateSystemTypefaceFor呼び出しから返さTypefaceの名前を確認してください。その名前を取得するにはgetName()または同様の呼び出しが必要だと思います。その名前が空であれば(あなたの主張があればそれが期待されます)、あなたの問題があります。

  • 読み込み中のファイルについての情報を示すTTFファイルビューアをダウンロードしてみてください。読み込んでいるフォントに名前が入っているかどうかを示すこともできますか否か。メタデータに名前が表示されている場合は、JUCEライブラリにバグがある可能性があります。

  • (別の種類のビューアやツールでチェックしたため)別のフォントや異なるフォントを読み込んでみることもできます。名前が設定されている場合は、それらの書体のいずれかからFontを作成し、成功したかどうかを確認してください。

実際にロードされた書体は、名前のセットを持っている場合は、この理論は一種の窓の外を行くが、私はまだ第三のステップを試してみて、あなたは常にすべてのフォントでか場合は、このエラーを取得するかどうかを確認しますそれはただのものに限られています。

関連する問題