埋め込み用のフォントを追加する

追加のフォントをMoodleに含めて、証明書およびカスタム証明書モジュールで使用して、それらをPDFに埋め込むことができます。

カスタムTCPDFフォントを追加する前に

TCPDFに含まれているフォントのデフォルトの場所はlib / tcpdf / fonts /です。 PDF_CUSTOM_FONT_PATHが存在する場合は、lib / tcpdf / fonts /の代わりにこのディレクトリが使用されます。デフォルトの場所は$ CFG-> dataroot。 '/ fonts /'です。

カスタムフォントを追加する場合は、すべてのフォントをlib / tcpdf / fonts /からPDF_CUSTOM_FONT_PATHにコピーしてから追加のフォントを追加する必要があります。あるいは、 http: //www.tcpdf.org/download.phpからすべてのTCPDFフォントをダウンロードしてPDF_CUSTOM_FONT_PATHディレクトリに展開することもできます。

/lib/tcpdf/fonts/readme_moodle.txtから:

このディレクトリには、標準のMoodleディストリビューションを軽量に保つために選択されたオリジナルのtcpdfフォントのセットが含まれています。手動でtcpdfパッケージをダウンロードして、そのfonts /ディレクトリをあなたの$ CFG-> dataroot / fonts /に展開することができます。そのような場合、pdflib.phpはこのディレクトリを使います。将来的には、言語と同じ方法でフォントをダウンロードできるようにする予定です。 (TODO MDL-18663 )。

TTFファイルからフォントを追加する

あなたが変換して埋め込むために認可されたフォントを持っていると仮定して...

オンラインコンバーターを使用する

TTF(またはOTF)フォントをhttps://fonts.snm-portal.com/にアップロードして、変換されたバージョンをダウンロードすることができます。

この方法で作成されたフォントは、ローカルで変換するよりもアクセントの付いた文字をうまく処理するようです。

ローカルに変換する

この方法で作成されたフォントはアクセント記号付き文字を正しく処理できない可能性があります。これはおそらく特定のソフトウェアバージョンに依存します。この問題が発生した場合は、上記のオンラインコンバータを使用してみてください。

1. .ttfファイルを/ lib / tcpdf / fontsにコピーします。

2. / lib / tcpdf / fontsに "convertfont.php"ファイルを作成します(そしてWebサーバーにその実行権限があることを確認します)。

 include ( '../tcpdf.php' ) ;
$pdf = new TCPDF_FONTS ( 'P' , 'mm' , 'A4' , true , 'UTF-8' , false ) ;
$pdf -> addTTFfont ( './MyFont.ttf' , 'TrueTypeUnicode' ) ; 

3. http:// hostname /lib/tcpdf/fonts/convertfont.phpでファイルを表示します(空のページが表示されるはずです)。

4. / lib / tcpdfに新しいファイルが作成されたことを確認します。

  • myfont.ctg.z
  • myfont.php
  • myfont.z

証明書でのフォントの使用については、下記を参照してください。

新しいフォントを使う

このセクションは古いmod_certificateプラグインに適用されます。mod_customcertプラグインでは、フォントは自動的にselectドロップダウンリストに表示されます。

追加したら、新しいフォントを使用する2つの方法があります。

  1. 証明書モジュール設定ページに移動し、それを新しいSerifまたはSans-serifフォントとして設定します。これはすべての標準証明書に適用されます。
  2. / mod / certificate / typeにカスタム証明書タイプを作成し、必要に応じて$ fontserif変数と$ fontsans変数を置き換えます。
  • ファイル全体のフォントを置き換える:
 // $fontsans = get_config('certificate', 'fontsans'); // Comment out old code
 
$fontsans = 'myfont' ; // Add new code. 
  • 学生名だけのフォントを置き換える:
 //certificate_print_text($pdf, $x, $y + 36, 'C', $fontsans, '', 30, fullname($USER)); // Comment out old code
 
certificate_print_text ( $pdf , $x , $y + 36 , 'C' , 'myfont' , '' , 30 , fullname ( $USER ) ) ; // Add new code.