summaryrefslogtreecommitdiff
path: root/pdf/fpdf/tutorial/tuto7.htm
diff options
context:
space:
mode:
Diffstat (limited to 'pdf/fpdf/tutorial/tuto7.htm')
-rw-r--r--[-rwxr-xr-x]pdf/fpdf/tutorial/tuto7.htm104
1 files changed, 25 insertions, 79 deletions
diff --git a/pdf/fpdf/tutorial/tuto7.htm b/pdf/fpdf/tutorial/tuto7.htm
index 21a3f6e..b42e552 100755..100644
--- a/pdf/fpdf/tutorial/tuto7.htm
+++ b/pdf/fpdf/tutorial/tuto7.htm
@@ -2,32 +2,18 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Adding new fonts and encoding support</title>
+<title>Adding new fonts and encodings</title>
<link type="text/css" rel="stylesheet" href="../fpdf.css">
-<style type="text/css">
-table {border-collapse:collapse; border-style:solid; border-width:2px; border-color:#A0A0A0 #000000 #000000 #A0A0A0}
-table {margin:1.4em 0 1.4em 1em}
-th {background-color:#E0EBFF; color:#900000; text-align:left}
-th, td {border:1px solid #808080; padding:2px 10px}
-tr.alt0 {background-color:#FFFFEE}
-tr.alt1 {background-color:#FFFFE0}
-</style>
</head>
<body>
-<h1>Adding new fonts and encoding support</h1>
-This tutorial explains how to use TrueType, OpenType and Type1 fonts so that you are not limited to
-the standard fonts any more. The other benefit is that you can choose the font encoding, which allows
-you to use other languages than the Western ones (the standard fonts having too few available characters).
+<h1>Adding new fonts and encodings</h1>
+This tutorial explains how to use TrueType, OpenType and Type1 fonts so that you are not limited to the
+standard fonts anymore. The other benefit is that you can choose the text encoding, which allows you to
+use other languages than the Western ones (the standard fonts support only cp1252 aka windows-1252).
<br>
<br>
-Remark: for OpenType, only the format based on TrueType is supported (not the one based on Type1).
-<br>
-<br>
-There are two ways to use a new font: embedding it in the PDF or not. When a font is not
-embedded, it is searched in the system. The advantage is that the PDF file is lighter; on the other
-hand, if it's not available, a substitution font is used. So it's preferable to ensure that the
-needed font is installed on the client systems. If the file is to be viewed by a large audience,
-it's highly recommended to embed.
+For OpenType, only the format based on TrueType is supported (not the one based on Type1).<br>
+For Type1, you will need the corresponding AFM file (it is usually provided with the font).
<br>
<br>
Adding a new font requires two steps:
@@ -35,7 +21,6 @@ Adding a new font requires two steps:
<li>Generation of the font definition file</li>
<li>Declaration of the font in the script</li>
</ul>
-For Type1, you need the corresponding AFM file. It's usually provided with the font.
<h2>Generation of the font definition file</h2>
The first step consists in generating a PHP file containing all the information needed by FPDF;
@@ -43,7 +28,7 @@ in addition, the font file is compressed. To do this, a helper script is provide
directory of the package: makefont.php. It contains the following function:
<br>
<br>
-<code>MakeFont(<b>string</b> fontfile, [, <b>string</b> enc [, <b>boolean</b> embed]])</code>
+<code>MakeFont(<b>string</b> fontfile [, <b>string</b> enc [, <b>boolean</b> embed [, <b>boolean</b> subset]]])</code>
<dl class="param" style="margin-bottom:2em">
<dt><code>fontfile</code></dt>
<dd>
@@ -57,6 +42,10 @@ directory of the package: makefont.php. It contains the following function:
<dd>
<p>Whether to embed the font or not. Default value: <code>true</code>.</p>
</dd>
+<dt><code>subset</code></dt>
+<dd>
+<p>Whether to subset the font or not. Default value: <code>true</code>.</p>
+</dd>
</dl>
The first parameter is the name of the font file. The extension must be either .ttf, .otf or .pfb and
determines the font type. If your Type1 font is in ASCII format (.pfa), you can convert it to binary
@@ -91,10 +80,19 @@ files. The available ones are:
<li>KOI8-R (Russian)</li>
<li>KOI8-U (Ukrainian)</li>
</ul>
-Of course, the font must contain the characters corresponding to the chosen encoding.
+Of course, the font must contain the characters corresponding to the selected encoding.
<br>
<br>
-Remark: the standard fonts use cp1252.
+The third parameter indicates whether the font should be embedded in the PDF or not. When a font is
+not embedded, it is searched in the system. The advantage is that the PDF file is smaller; on the
+other hand, if it is not available, then a substitution font is used. So you should ensure that the
+needed font is installed on the client systems. Embedding is the recommended option to guarantee a
+correct rendering.
+<br>
+<br>
+The last parameter indicates whether subsetting should be used, that is to say, whether only
+the characters from the selected encoding should be kept in the embedded font. As a result,
+the size of the PDF file can be greatly reduced, especially if the original font was big.
<br>
<br>
After you have called the function (create a new file for this and include makefont.php), a .php file
@@ -109,7 +107,7 @@ Example:
<pre><code>&lt;?php
<span class="kw">require(</span><span class="str">'makefont/makefont.php'</span><span class="kw">);
-</span>MakeFont<span class="kw">(</span><span class="str">'c:\\Windows\\Fonts\\comic.ttf'</span><span class="kw">,</span><span class="str">'cp1252'</span><span class="kw">);
+</span>MakeFont<span class="kw">(</span><span class="str">'C:\\Windows\\Fonts\\comic.ttf'</span><span class="kw">,</span><span class="str">'cp1252'</span><span class="kw">);
</span>?&gt;</code></pre>
</div>
which gives the files comic.php and comic.z.
@@ -122,7 +120,7 @@ it directly instead of the .z version.
Another way to call MakeFont() is through the command line:
<br>
<br>
-<kbd>php makefont\makefont.php c:\Windows\Fonts\comic.ttf cp1252</kbd>
+<kbd>php makefont\makefont.php C:\Windows\Fonts\comic.ttf cp1252</kbd>
<br>
<br>
Finally, for TrueType and OpenType fonts, you can also generate the files
@@ -185,57 +183,5 @@ We can now copy the two generated files to the font directory and write the scri
</span>?&gt;</code></pre>
</div>
<p class='demo'><a href='tuto7.php' target='_blank' class='demo'>[Demo]</a></p>
-
-<h2>About the euro symbol</h2>
-The euro character is not present in all encodings, and is not always placed at the same position:
-<table>
-<tr><th>Encoding</th><th>Position</th></tr>
-<tr class="alt0"><td>cp1250</td><td>128</td></tr>
-<tr class="alt1"><td>cp1251</td><td>136</td></tr>
-<tr class="alt0"><td>cp1252</td><td>128</td></tr>
-<tr class="alt1"><td>cp1253</td><td>128</td></tr>
-<tr class="alt0"><td>cp1254</td><td>128</td></tr>
-<tr class="alt1"><td>cp1255</td><td>128</td></tr>
-<tr class="alt0"><td>cp1257</td><td>128</td></tr>
-<tr class="alt1"><td>cp1258</td><td>128</td></tr>
-<tr class="alt0"><td>cp874</td><td>128</td></tr>
-<tr class="alt1"><td>ISO-8859-1</td><td>N/A</td></tr>
-<tr class="alt0"><td>ISO-8859-2</td><td>N/A</td></tr>
-<tr class="alt1"><td>ISO-8859-4</td><td>N/A</td></tr>
-<tr class="alt0"><td>ISO-8859-5</td><td>N/A</td></tr>
-<tr class="alt1"><td>ISO-8859-7</td><td>N/A</td></tr>
-<tr class="alt0"><td>ISO-8859-9</td><td>N/A</td></tr>
-<tr class="alt1"><td>ISO-8859-11</td><td>N/A</td></tr>
-<tr class="alt0"><td>ISO-8859-15</td><td>164</td></tr>
-<tr class="alt1"><td>ISO-8859-16</td><td>164</td></tr>
-<tr class="alt0"><td>KOI8-R</td><td>N/A</td></tr>
-<tr class="alt1"><td>KOI8-U</td><td>N/A</td></tr>
-</table>
-ISO-8859-1 is widespread but does not include the euro sign. If you need it, the simplest thing
-to do is to use cp1252 or ISO-8859-15 instead, which are nearly identical but contain the precious
-symbol.
-
-<h2>Reducing the size of TrueType fonts</h2>
-Font files are often quite voluminous; this is due to the fact that they contain the characters
-corresponding to many encodings. Zlib compression reduces them but they remain fairly big. A
-technique exists to reduce them further. It consists in converting the font to the Type1 format
-with <a href="http://ttf2pt1.sourceforge.net" target="_blank">ttf2pt1</a> (the Windows binary is
-available <a href="http://www.fpdf.org/fr/dl.php?id=22">here</a>) while specifying the encoding
-you are interested in; all other characters will be discarded.
-<br>
-For example, the arial.ttf font that ships with Windows Vista weights 748 KB (it contains 3381 characters).
-After compression it drops to 411. Let's convert it to Type1 by keeping only cp1250 characters:
-<br>
-<br>
-<kbd>ttf2pt1 -b -L cp1250.map c:\Windows\Fonts\arial.ttf arial</kbd>
-<br>
-<br>
-The .map files are located in the makefont directory of the package. The command produces
-arial.pfb and arial.afm. The arial.pfb file weights only 57 KB, and 53 after compression.
-<br>
-<br>
-It's possible to go even further. If you are interested only by a subset of the encoding (you
-probably don't need all 217 characters), you can open the .map file and remove the lines you are
-not interested in. This will reduce the file size accordingly.
</body>
</html>