Files
2015-09-01 19:05:48 -04:00

200 lines
8.9 KiB
Groff

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>/* @pjs font */ directive | reference | Processing.js</title>
<link rel="stylesheet" href="../css/bootstrap.css" type="text/css" />
<link rel="stylesheet" href="../css/syntax.css" type="text/css" />
<link rel="stylesheet" href="../css/processing-js.css" type="text/css" />
<script src="../js/processing.min.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>
<script src="../js/jquery.tweet.min.js" type="text/javascript"></script>
<script src="../js/tabselector.js" type="text/javascript"></script>
<script src="http://cdn.webglstats.com/stat.js" defer="defer" async="async"></script>
<script type="text/javascript">
// Only do tracking on the actual site
if (document.location.host === "processingjs.org") {
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-8565070-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
}());
}
</script>
</head>
<body>
<div class="container">
<div class="header">
<a href="http://processingjs.org/"><img src="../images/header.png" width="177" height="42"></a>
</div>
<span class="tagline">a port of the Processing Visualization Language</span>
<div class="navbar">
<canvas width="940px" height="78px" data-processing-sources="/sketches/bannerSketch.pde"></canvas>
<ul>
<li><a href="http://processingjs.org/"><span>home</span></a></li>
<li><a href="http://processingjs.org/download/"><span>download</span></a></li>
<li><a href="index.html"><span>reference</span></a></li>
<li><a href="http://processingjs.org/exhibition/"><span>exhibition</span></a></li>
<li><a href="http://processingjs.org/learning/"><span>learning</span></a></li>
<li><a href="http://processingjs.org/articles/"><span>articles</span></a></li>
<li><a href="http://processingjs.org/community/"><span>community</span></a></li>
<li><a href="http://processingjs.org/blog/"><span>blog</span></a></li>
</ul>
<a class="viewsource" href="http://processingjs.org/sketches/bannerSketch.pde">view source</a>
</div>
<div class="page row">
<div class="span11">
<table cellpadding="0" cellspacing="0" border="0" class="ref-item">
<tr class="name-row">
<th scope="row">Name</th>
<td><h3>/* @pjs font */ directive</h3></td>
</tr>
<tr class="">
<th scope="row">Examples</th>
<td><div class="example"><pre>/* @pjs font="Arial.ttf"; */
void setup()
{
size(200,200);
noLoop();
textFont(createFont("Arial",32));
}
void draw()
{
background(255);
String t = "P.js";
float tw = textWidth(t);
fill(0);
text(t, (width-tw)/2, (height+32)/2);
}
</pre></div></td>
</tr>
<tr class="">
<th scope="row">Description</th>
<td><p>If you wish to use custom fonts in your sketch, these must be preloaded using the font @pjs directive. Preloading fonts uses its own command,
rather than the standard <a href="preload.1">preload</a> command, because unlike images a font must not just be cached, but must also be loaded into memory for the browser
to make use of. Processing.js does this by relying on the browser to load the font via a CSS @font-face rule. While most browsers support a large number
of font formats for use with @font-face (woff, svg, eot, ttf and otf), relying on "truetype" (ttf) and "opentype" (otf) font formats offer the greatest
interoperability between Processing and Processing.js.</p>
<p>Fonts can be preloaded from URL, such as "Arial.ttf" or from data URI, such as "data:font/truetype,base64, {base 64 encoded data block}".
Fonts that are preloaded can be loaded without their extension in your sketch using the createFont function: if you preload "Arial.ttf" you can use
this font in your sketch by loading it as a Processing font using <b>PFont myfont = createFont("Arial",12); </b>and then using as text font by calling
<b>textFont(myfont);</b> If you place your fonts in a separate directory, such as the "data" directory used by Processing, you only need to
indicate the font location in the preload command. The preload command will be /* @pjs font="data/Arial.ttf"; */ but the call in your sketch
remains <b>createFont("Arial",12)</b>.</p>
<p><b>NOTE:</b> The "VLW" format used by Processing is not supported, as this is a custom bitmap image file with an index that indicates sections of the
image that map to a letter.</p>
<p><b>WARNING:</b> only use this directive for fonts that are used exclusively by your sketch; if your sketch relies on a font that you have also included for use
on your page with an @font-face CSS rule, this directive may overwrite your rule with a far simpler one.
</td>
</tr>
<tr class="">
<th scope="row">Syntax</th>
<td>
<pre>
<kbd>/* @pjs font="fontURL"; */</kbd><br />
<kbd>/* @pjs font="data:font/truetype,base64, {base 64 encoded data block}"; */</kbd>
</td>
</tr>
<tr class="">
<th scope="row">Syntax for multiple fonts</th>
<td>
<pre>
<kbd>/* @pjs font="font1,font2,..."; */</kbd>
</td>
</tr>
<tr class="">
<th scope="row">Parameters</th>
<td><table cellpadding="0" cellspacing="0" border="0">
<tr class="">
<th scope="row">font</th>
<td>comma separated list of URLs or data-URIs (may be mixed), all inside a single set of double quotes</td>
</tr>
</table></td>
</tr>
<tr class="">
<th scope="row">Usage</th>
<td>Web & Application, Processing.js compatibility</td>
</tr>
<tr class="">
<th scope="row">Related</th>
<td>
<a href="http://processingjs.org/reference/pjs&#32;directive">@pjs directives</a>
<br /><a href="createFont_.1">createFont()</a>
</td>
</tr>
</table>
<div class="cclicense">
<p>This reference is licensed under the CC BY-NC-SA 2.0 license:</p>
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.0/">
<img alt="Creative Commons License" border="0" src="../images/somerights20.gif" />
</a>
</div>
</div>
<div class="sidebar span4">
<h3><a href="http://processingjs.org/download/">Downloads</a></h3>
<ul>
<li><a href="http://processingjs.org/download/">Download the latest version of Processing.js!</a></li>
</ul>
<h3><a href="http://processingjs.org/articles/">Articles</a></h3>
<ul>
<li><a href="http://processingjs.org/articles/jsQuickStart.html">Quick Start - JavaScript Developer</a></li>
<li><a href="http://processingjs.org/articles/p5QuickStart.html">Quick Start - Processing Developer</a></li>
<li><a href="http://processingjs.org/articles/RenderingModes.html">Rendering Modes</a></li>
<li><a href="http://processingjs.org/articles/PomaxGuide.html">Pomax's Guide to processing-js</a></li>
</ul>
<h3><a>Web IDEs</a></h3>
<ul>
<li><a href="http://sketchpad.cc">Sketchpad.cc</a></li>
<li><a href="http://processingjs.org/tools/processing-helper.html">Processing.js Helper</a></li>
<li><a href="http://www.openprocessing.org">OpenProcessing.org</a></li>
</ul>
<h3><a href="http://processingjs.org/community/">Community</a></h3>
<ul>
<li><a href="irc://irc.mozilla.org/processing.js">IRC Channel</a></li>
<li><a href="http://processing-js.lighthouseapp.com/">Bug Tracker</a></li>
<li><a href="http://github.com/processing-js/processing-js/">Github Repository</a></li>
<li><a href="http://groups.google.com/group/processingjs">Google Group</a></li>
<li><a href="http://zenit.senecac.on.ca/wiki/index.php/">Open Source @ Seneca</a></li>
</ul>
<h3><a href="http://twitter.com/processingjs">Twitter Feed</a></h3>
<div class="twitter"></div>
</div>
</div>
<div class="footer">
Processing is an open visualization language developed by
<a href="http://benfry.com/">Ben Fry</a> &amp; <a href="http://reas.com/">Casey Reas</a>,
and originally ported to Javascript by
<a href="http://ejohn.org/blog/processingjs/">John Resig</a>.
Processing.js is maintained by the Processing.js team.
</div>
</div>
<a href="http://github.com/processing-js/processing-js/">
<img style="position: absolute; top: 0; right: 0; border: 0;" src="../images/forkme-right-orange.png" alt="Fork me on GitHub">
</a>
</body>
</html>