diff options
Diffstat (limited to 'doc/Xfonts.htm')
-rw-r--r-- | doc/Xfonts.htm | 279 |
1 files changed, 0 insertions, 279 deletions
diff --git a/doc/Xfonts.htm b/doc/Xfonts.htm deleted file mode 100644 index fe5311c51..000000000 --- a/doc/Xfonts.htm +++ /dev/null @@ -1,279 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> -<html> -<head> -<meta http-equiv="content-type" content="text/html; charset=us-ascii"> -<title>Ghostscript's external font and text interface</title> -<!-- Originally: xfonts.txt --> -<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style"> -</head> - -<body> -<!-- [1.0 begin visible header] ============================================ --> - -<!-- [1.1 begin headline] ================================================== --> - -<h1>Ghostscript's external font and text interface</h1> - -<!-- [1.1 end headline] ==================================================== --> - -<!-- [1.2 begin table of contents] ========================================= --> - -<h2>Table of contents</h2> - -<blockquote><ul> -<li><a href="#Deprecated">Deprecated</a> -<li><a href="#Introduction">Introduction</a> -<li><a href="#Types">Types</a> -<li><a href="#Implementation_procedures">Implementation procedures</a> -<li><a href="#Font_level_procedures">Font-level procedures</a> -<ul> -<li><a href="#lookup_font"><code>lookup_font</code></a> -<li><a href="#char_xglyph"><code>char_xglyph</code></a> -<li><a href="#char_metrics"><code>char_metrics</code></a> -<li><a href="#render_char"><code>render_char</code></a> -<li><a href="#release"><code>release</code></a> -</ul> -</ul></blockquote> - -<!-- [1.2 end table of contents] =========================================== --> - -<!-- [1.3 begin hint] ====================================================== --> - -<p>For other information, see the <a href="Readme.htm">Ghostscript -overview</a>. - -<!-- [1.3 end hint] ======================================================== --> - -<hr> - -<!-- [1.0 end visible header] ============================================== --> - -<!-- [2.0 begin contents] ================================================== --> -<h2><a name="Removal"></a>Removal</h2> -<p> -As of Ghostscript 9.04, the Xfont functionality has been removed - -<h2><a name="Deprecated"></a>Deprecated</h2> -<p> -As of Ghostscript 9.01 Xfont functionality is considered deprecated, and -unsupported. Its complete removal is planned for a near future release. -<p> -If your application relies on this feature you should either plan for -its removal, or contact the Ghostscript developers so our Xfont plans -can be revisited. - -<h2><a name="Introduction"></a>Introduction</h2> - -<p> -Ghostscript can use the character rasterizer provided by the underlying -operating system and window system; specifically, Adobe Type Manager (ATM) -or a TrueType rasterizer under MS Windows, or the facilities provided by X -Windows. This ability augments, but does not replace, Ghostscript's own -Type 1 rasterizer: Ghostscript may still use its own rasterizer for very -large characters, characters that are clipped or transformed in unusual -ways, and for output to devices other than the screen. - -<p> -Ghostscript connects to these platform facilities through a driver-like -interface called the xfont (external font) interface. Current xfont -implementations are associated directly with device drivers; in a future -release, Ghostscript may separate them, so that (for example) it will be -possible to use the platform rasterizer when writing to a file. - -<p> -Please note that from this point, this file is likely to be useful only -to a small number of Ghostscript porters and implementors. - -<hr> - -<h2><a name="Types"></a>Types</h2> - -<table cellpadding=0 cellspacing=0> -<tr> <th valign=bottom align=left>Type - <td> - <th valign=bottom align=left>Declared /<br>defined in - <td> - <th valign=bottom align=left>Represents -<tr> <td colspan=5><hr> -<tr> <td valign=top><code>gs_char</code> - <td> - <td valign=top><code>gsccode.h</code> - <td> - <td valign=top>A character code that appears in a string. Currently - it is always a single byte, but composite fonts or Unicode may - require it to be wider in the future. -<tr> <td valign=top><code>gs_glyph</code> - <td> - <td valign=top><code>gsccode.h</code> - <td> - <td valign=top>A character name like "period" or "epsilon". From - the xfont implementation's point of view, it is just a handle; - when necessary, Ghostscript provides a - <code>gs_proc_glyph_name_t</code> procedure to - convert it to a string name. -<tr> <td valign=top><code>gs_proc_glyph_name_t</code> - <td> - <td valign=top><code>gsccode.h</code> - <td> - <td valign=top>A procedure that maps a <code>gs_glyph</code> to - its string name; see the <code>char_xglyph</code> procedure. -<tr> <td valign=top><code>gx_xglyph</code> - <td> - <td valign=top><code>gsxfont.h</code> - <td> - <td valign=top>A character or glyph code that can be used with a - specific platform font. Normally it will be a character code - that the implementation of <code>render_char</code> will - turn into a 1-character string and give to the platform's - "display string" operation. -<tr> <td valign=top><code>gx_xfont_procs</code> - <td> - <td valign=top><code>gsxfont.h</code>, <code>gxxfont.h</code> - <td> - <td valign=top>The xfont analogue of - <code>gx_device_procs</code>, the type of the - procedure record that defines an xfont implementation. -<tr> <td valign=top><code>gx_xfont</code> - <td> - <td valign=top><code>gsxfont.h</code>, <code>gxxfont.h</code> - <td> - <td valign=top>The gxfont analogue of <code>gx_device</code>, - the type of the basic structure for an xfont. -<tr> <td valign=top>(<code>encoding_index</code>) - <td> - <td> - <td> - <td valign=top>Not really a type, although it probably should be: - an <code>int</code> used to indicate the - <code>Encoding</code> used by a font. Defined values are - <dl compact> - <dt>0<dd><code>StandardEncoding</code> - <dt>1<dd><code>ISOLatin1Encoding</code> - <dt>2<dd><code>SymbolEncoding</code> - <dt>3<dd><code>DingbatsEncoding</code> - <dt>-1<dd>Other encoding - </dl> -</table> - -<hr> - -<h2><a name="Implementation_procedures"></a>Implementation -procedures</h2> - -<p> -All the procedures that return <code>int</code> results return 0 on -success, or an appropriate negative error code for error conditions; these -error codes are defined in <code>gserrors.h</code>. The relevant ones -are the same as for <a href="Drivers.htm">drivers</a>, and as with drivers, -if an implementation procedure returns an error, it should use the -<code>return_error</code> macro -- defined in <code>gx.h</code>, -which is automatically included by <code>gdevprn.h</code> but not by -<code>gserrors.h</code> -- rather than a simple <code>return</code> -statement, for instance - -<blockquote> -<code>return_error(gs_error_VMerror);</code> -</blockquote> - -<h2><a name="Font_level_procedures"></a>Font-level procedures</h2> - -<h3><a name="lookup_font"></a><code>lookup_font</code></h3> - -<dl> -<dt><code>gx_xfont *(*lookup_font)(P7(gx_device *dev, -const byte *fname, uint len, int encoding_index, -const gs_uid *puid, const gs_matrix *pmat, -const gs_memory_procs *mprocs))</code> -<dd>Look up a font name, <code>UniqueID</code>, and matrix, and return -an xfont, or <code>NULL</code> if no suitable xfont exists. Use -<code>mprocs</code> to allocate the xfont and any subsidiary data -structures. The matrix is the <code>FontMatrix</code> concatenated with -the CTM, so (roughly speaking) the font size in pixels is -<code>pmat -> yy</code> × 1000 for a normal -Type 1 font. - -<p> -Note that this is the only implementation procedure that does not take an -xfont * as its first argument. In fact, callers of -<code>lookup_font</code> must use the <code>get_xfont_device</code> -driver procedure to get the correct device to pass as the first argument to -<code>lookup_font</code>. -</dl> - -<h3><a name="char_xglyph"></a><code>char_xglyph</code></h3> - -<dl> -<dt><code>gx_xglyph (*char_xglyph)(P5(gx_xfont *xf, gs_char chr, -int encoding_index, gs_glyph glyph, -gs_proc_glyph_name_t glyph_name))</code> -<dd>Convert a character name to an xglyph code. In the case of -<code>glyphshow</code>, <code>chr</code> may be -<code>gs_no_char</code>; for an ordinary <code>show</code> operation, -if the character code is invalid, <code>glyph</code> may be -<code>gs_no_glyph</code>. -</dl> - -<h3><a name="char_metrics"></a><code>char_metrics</code></h3> - -<dl> -<dt><code>int (*char_metrics)(P5(gx_xfont *xf, gx_xglyph xg, -int wmode, gs_int_point *pwidth, -gs_int_rect *pbbox))</code> -<dd>Get the metrics for a character. If the metrics are unavailable, -return 1. -</dl> - -<h3><a name="render_char"></a><code>render_char</code></h3> - -<dl> -<dt><code>int (*render_char)(P7(gx_xfont *xf, gx_xglyph xg, -gx_device *target, int x, int y, gx_color_index color, -int required))</code> -<dd>Render a character. <em>(x,y)</em> corresponds to the character -origin. The target may be any Ghostscript device. A good implementation -will check whether the target can handle this type of xfont directly (for -instance by checking the target name), and if so, will render the character -directly; otherwise, it will do what has to be done in the general case, -namely, get a bitmap for the character and use the target's -<code>copy_mono</code> operation. If <code>required</code> is false, -the procedure should return an error if the rendering operation would be -expensive, since in this case Ghostscript has already cached the bitmap and -metrics from a previous call with <code>required</code>=true. If the -operation cannot be done, return 1. -</dl> - -<h3><a name="release"></a><code>release</code></h3> - -<dl> -<dt><code>int (*release)(P2(gx_xfont *xf, -const gs_memory_procs *mprocs))</code> -<dd>Release any external resources associated with an xfont. If -<code>mprocs</code> is not <code>NULL</code>, also free any storage -allocated by <code>lookup_font</code> (including the xfont itself). -</dl> - -<!-- [2.0 end contents] ==================================================== --> - -<!-- [3.0 begin visible trailer] =========================================== --> -<hr> - -<p> -<small>Copyright © 2000-2006 Artifex Software, Inc. All rights reserved.</small> - -<p> -This software is provided AS-IS with no warranty, either express or -implied. - -This software is distributed under license and may not be copied, modified -or distributed except as expressly authorized under the terms of that -license. Refer to licensing information at http://www.artifex.com/ -or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, -San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information. - -<p> -<small>Ghostscript version 9.22, 4 October 2017 - -<!-- [3.0 end visible trailer] ============================================= --> - -</body> -</html> |