Note: You are currently viewing documentation for Moodle 3.2. Up-to-date documentation for the latest stable version of Moodle is probably available here: Add fonts for embedding.

Add fonts for embedding: Difference between revisions

From MoodleDocs
(Initial add.)
 
(Add reference to online font conversion via http://fonts.snm-portal.com/)
 
(2 intermediate revisions by the same user not shown)
Line 4: Line 4:
== Add a font from TTF file ==
== Add a font from TTF file ==
Assuming you have a font licensed for converting and embedding...
Assuming you have a font licensed for converting and embedding...
=== Using an online converter ===
You can upload TTF (or OTF) fonts to http://fonts.snm-portal.com/, and download converted versions.
Fonts created this way seem to handle accented characters better than converting locally.
=== Converting locally ===
Fonts created this way may not handle accented characters correctly; this is probably dependant on the specific software versions. If you encounter this problem, you might want to try using an online converter (above).


1. Copy the .ttf file to /lib/tcpdf/fonts
1. Copy the .ttf file to /lib/tcpdf/fonts
Line 13: Line 22:
$pdf->addTTFfont('./MyFont.ttf', 'TrueTypeUnicode');
$pdf->addTTFfont('./MyFont.ttf', 'TrueTypeUnicode');
</code>
</code>
3. View the file at http://''hostname''/lib/tcpdf/fonts/convertfont.php
3. View the file at http://''hostname''/lib/tcpdf/fonts/convertfont.php (it should just show a blank page).


4. Verify that new files have been created in /lib/tcpdf:
4. Verify that new files have been created in /lib/tcpdf:
Line 27: Line 36:
From /lib/tcpdf/fonts/readme_moodle.txt:
From /lib/tcpdf/fonts/readme_moodle.txt:


  This directory contains just selected set of original tcpdf fonts in order to keep the standard Moodle distribution lightweight. You may want to manually download tcpdf package and extract its fonts/ directory into your <code php>$CFG->dataroot/fonts/</code>. In such case, pdflib.php will use this directory.  In the future, we plan to have fonts downloadable in a same way as languages are. (TODO MDL-18663).
:This directory contains just selected set of original tcpdf fonts in order to keep the standard Moodle distribution lightweight. You may want to manually download tcpdf package and extract its fonts/ directory into your $CFG->dataroot/fonts/. In such case, pdflib.php will use this directory.  In the future, we plan to have fonts downloadable in a same way as languages are. (TODO MDL-18663).


== Using a new font ==
== Using a new font ==
Line 48: Line 57:
certificate_print_text($pdf, $x, $y + 36, 'C', 'myfont', '', 30, fullname($USER)); // Add new code.
certificate_print_text($pdf, $x, $y + 36, 'C', 'myfont', '', 30, fullname($USER)); // Add new code.
</code>
</code>
[[Category:Certificate]]

Latest revision as of 11:23, 11 August 2016

Additional fonts can be included in Moodle and used by the Certificate module, embedding them in the PDF (when using an "embedded" certificate type).

Add a font from TTF file

Assuming you have a font licensed for converting and embedding...

Using an online converter

You can upload TTF (or OTF) fonts to http://fonts.snm-portal.com/, and download converted versions.

Fonts created this way seem to handle accented characters better than converting locally.

Converting locally

Fonts created this way may not handle accented characters correctly; this is probably dependant on the specific software versions. If you encounter this problem, you might want to try using an online converter (above).

1. Copy the .ttf file to /lib/tcpdf/fonts

2. Create a "convertfont.php" file in /lib/tcpdf/fonts (and ensure the web server has permissions to run it), containing: include('../tcpdf.php'); $pdf = new TCPDF_FONTS('P', 'mm', 'A4', true, 'UTF-8', false); $pdf->addTTFfont('./MyFont.ttf', 'TrueTypeUnicode'); 3. View the file at http://hostname/lib/tcpdf/fonts/convertfont.php (it should just show a blank page).

4. Verify that new files have been created in /lib/tcpdf:

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

See below for using the font in a certificate.


Add all TCPDF fonts

From /lib/tcpdf/fonts/readme_moodle.txt:

This directory contains just selected set of original tcpdf fonts in order to keep the standard Moodle distribution lightweight. You may want to manually download tcpdf package and extract its fonts/ directory into your $CFG->dataroot/fonts/. In such case, pdflib.php will use this directory. In the future, we plan to have fonts downloadable in a same way as languages are. (TODO MDL-18663).

Using a new font

Once added, there are two ways to use the new font:

  1. Go to the Certificate module setting page and set it as the new Serif or Sans-serif font. This will apply to all standard certificates.
  2. Create a custom certificate type in /mod/certificate/type, and replace the $fontserif and $fontsans variables, as needed.
  • Replacing font for the whole file:

// $fontsans = get_config('certificate', 'fontsans'); // Comment out old code

$fontsans = 'myfont'; // Add new code.

  • Replacing font for just the student name:

//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.