 |
|
| |
PDF::Builder::Resource::Font::SynFont(3) |
User Contributed Perl Documentation |
PDF::Builder::Resource::Font::SynFont(3) |
PDF::Builder::Resource::Font::SynFont - Module for creating
temporary synthetic Fonts
Inherits from PDF::Builder::Resource::Font
This module permits you to create a "new" font (loaded
temporarily, but not permanently stored) based on an existing font, where
you can modify certain attributes in the original font, such as:
* slant/obliqueness
* extra weight/boldness (by drawing glyph outlines at various line
thicknesses, rather than just filling enclosed areas)
* condense/expand (narrower or wider characters)
* extra space between characters
* small caps (synthesized, not using any provided with a font)
* change the encoding
$pdf = PDF::Builder->new();
$cft = $pdf->font('Times-Roman'); # corefont, ttfont, etc. also works
$sft = $pdf->synfont($cft, 'condense' => .75); # condense by 25%
This works for corefonts, PS fonts, and TTF/OTF
fonts; but does not work for CJK fonts or bitmapped fonts.
See also "Synthetic Fonts" in PDF::Builder::Docs.
Alternate name:
"synthetic_font"
This is for compatibility with recent changes to PDF::API2.
$font = PDF::Builder::Resource::Font::SynFont->new($pdf, $fontobj, %opts)
Returns a synfont object.
$fontobj is a normal font object read in from a file,
and $font is the modified output.
Valid options %opts are:
- encode
- Changes the encoding of the font from its default. See Perl's
Encode for the supported values. Warning: only single byte
encodings are supported. Multibyte encodings such as UTF-8 are
invalid.
- pdfname
- Changes the reference-name of the font from its default. The
reference-name is normally generated automatically and can be retrieved
via $pdfname=$font->name().
Alternate name:
"name" (for PDF::API2
compatibility)
- condense
- Character width condense/expand factor (0.1-0.9 = condense, 1 =
normal/default, 1.1+ = expand). It is the multiplier to apply to the width
of each character.
Alternate names:
"hscale" and
"slant" (for PDF::API2
compatibility)
The slant option is a deprecated name in both
PDF::Builder and PDF::API2. Its value is the same as condense
value (1 = normal, unchanged scale). For the hscale option, the
value is percentage (%), with 100 being normal, and other values 100
times the condense value. Use only one (at most) of these
three option names.
- oblique
- Italic or slanted text angle (+/-) in degrees, where the character box is
skewed (sheared), top to the right. While it's unlikely that anyone will
want to slant characters at +/-360 degrees, they should be aware that
these will be treated as an angle of 0 degrees (deg2rad() wraps
around). 0 degrees of italic slant (obliqueness) is the default.
Alternate name:
"angle" (for PDF::API2
compatibility)
Use only one (at most) of these two option names.
- bold
- Embolding factor (0.1+, bold=1, heavy=2, ...). It is additional outline
thickness (linewidth), which expands the character (glyph)
outwards (as well as shrinking unfilled enclosed areas such as bowls and
counters). Normally, the glyph's outline is not drawn (it is only filled);
this adds a thick outline. The units are in 1/100ths of a text unit.
If used with the
"synthetic_font" alternate entry name,
the unit is 1/1000th of a text unit, so you will need a value 10 times
larger than with the "synfont" entry
to get the same effect.
- space
- Additional charspacing in thousandths of an em.
- caps
- Create synthetic small-caps. 0 = no, 1 = yes. These are capitals of
lowercase letters, at 80% height and 88% width. Note that this is
guaranteed to cover ASCII lowercase letters only -- single byte encoded
accented characters usually work, but we can make no promises on
accented characters in general, as well as ligatures!
Alternate name:
"smallcaps" (for PDF::API2
compatibility)
Use only one (at most) of these two option names.
Note that only lower case letters which appear in the
"standard" font (plane 0 for core fonts and PS fonts) will be
small-capped. This may include eszett (German sharp s), which becomes
SS, and dotless i and j which become I and J respectively. There are
many other accented Latin alphabet letters which may show up in
planes 1 and higher. Ligatures (e.g., ij and ffl) do not have uppercase
equivalents, nor does a long s. If you have text which includes such
characters, you may want to consider preprocessing it to replace them
with Latin character expansions (e.g., i+j and f+f+l) before
small-capping.
Visit the GSP FreeBSD Man Page Interface. Output converted with ManDoc.
|