Pdf/Font.php

Show: PublicProtectedPrivateinherited
Table of Contents
Zend Framework
LICENSE This source file is subject to the new BSD license that is bundled with this package in the file LICENSE.txt. It is also available through the world-wide-web at this URL: http://framework.zend.com/license/new-bsd If you did not receive a copy of the license and are unable to obtain it through the world-wide-web, please send an email to [email protected] so we can send you a copy immediately.
Category
Zend  
Copyright
Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)  
License
New BSD License  
Package
Zend_Pdf  
Subpackage
Fonts  
Version
$Id$  

\Zend_Pdf_Font

Package: Zend_Pdf\Fonts
Abstract factory class which vends {@link Zend_Pdf_Resource_Font} objects.
Font objects themselves are normally instantiated through the factory methods {@link fontWithName()} or {@link fontWithPath()}. This class is also the home for font-related constants because the name of the true base class ({@link Zend_Pdf_Resource_Font}) is not intuitive for the end user.
Copyright
Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)  
License
New BSD License  

Constants

>VConstant  TYPE_UNKNOWN = 0
Unknown font type.
>VConstant  TYPE_STANDARD = 1
One of the standard 14 PDF fonts.
>VConstant  TYPE_TYPE_1 = 2
A PostScript Type 1 font.
>VConstant  TYPE_TRUETYPE = 3
A TrueType font or an OpenType font containing TrueType outlines.
>VConstant  TYPE_TYPE_0 = 4
Type 0 composite font.
>VConstant  TYPE_CIDFONT_TYPE_0 = 5
CID font containing a PostScript Type 1 font.
These fonts are used only to construct Type 0 composite fonts and can't be used directly
>VConstant  TYPE_CIDFONT_TYPE_2 = 6
CID font containing a TrueType font or an OpenType font containing TrueType outlines.
These fonts are used only to construct Type 0 composite fonts and can't be used directly
>VConstant  FONT_COURIER = 'Courier'
Name of the standard PDF font Courier.
>VConstant  FONT_COURIER_BOLD = 'Courier-Bold'
Name of the bold style of the standard PDF font Courier.
>VConstant  FONT_COURIER_OBLIQUE = 'Courier-Oblique'
Name of the italic style of the standard PDF font Courier.
>VConstant  FONT_COURIER_ITALIC = 'Courier-Oblique'
Convenience constant for a common misspelling of {@link FONT_COURIER_OBLIQUE}.
>VConstant  FONT_COURIER_BOLD_OBLIQUE = 'Courier-BoldOblique'
Name of the bold and italic style of the standard PDF font Courier.
>VConstant  FONT_COURIER_BOLD_ITALIC = 'Courier-BoldOblique'
Convenience constant for a common misspelling of {@link FONT_COURIER_BOLD_OBLIQUE}.
>VConstant  FONT_HELVETICA = 'Helvetica'
Name of the standard PDF font Helvetica.
>VConstant  FONT_HELVETICA_BOLD = 'Helvetica-Bold'
Name of the bold style of the standard PDF font Helvetica.
>VConstant  FONT_HELVETICA_OBLIQUE = 'Helvetica-Oblique'
Name of the italic style of the standard PDF font Helvetica.
>VConstant  FONT_HELVETICA_ITALIC = 'Helvetica-Oblique'
Convenience constant for a common misspelling of {@link FONT_HELVETICA_OBLIQUE}.
>VConstant  FONT_HELVETICA_BOLD_OBLIQUE = 'Helvetica-BoldOblique'
Name of the bold and italic style of the standard PDF font Helvetica.
>VConstant  FONT_HELVETICA_BOLD_ITALIC = 'Helvetica-BoldOblique'
Convenience constant for a common misspelling of {@link FONT_HELVETICA_BOLD_OBLIQUE}.
>VConstant  FONT_SYMBOL = 'Symbol'
Name of the standard PDF font Symbol.
>VConstant  FONT_TIMES_ROMAN = 'Times-Roman'
Name of the standard PDF font Times.
>VConstant  FONT_TIMES = 'Times-Roman'
Convenience constant for a common misspelling of {@link FONT_TIMES_ROMAN}.
>VConstant  FONT_TIMES_BOLD = 'Times-Bold'
Name of the bold style of the standard PDF font Times.
>VConstant  FONT_TIMES_ITALIC = 'Times-Italic'
Name of the italic style of the standard PDF font Times.
>VConstant  FONT_TIMES_BOLD_ITALIC = 'Times-BoldItalic'
Name of the bold and italic style of the standard PDF font Times.
>VConstant  FONT_ZAPFDINGBATS = 'ZapfDingbats'
Name of the standard PDF font Zapf Dingbats.
>VConstant  NAME_COPYRIGHT = 0
Full copyright notice for the font.
>VConstant  NAME_FAMILY = 1
Font family name. Used to group similar styles of fonts together.
>VConstant  NAME_STYLE = 2
Font style within the font family. Examples: Regular, Italic, Bold, etc.
>VConstant  NAME_ID = 3
Unique font identifier.
>VConstant  NAME_FULL = 4
Full font name. Usually a combination of the {@link NAME_FAMILY} and {@link NAME_STYLE} strings.
>VConstant  NAME_VERSION = 5
Version number of the font.
>VConstant  NAME_POSTSCRIPT = 6
PostScript name for the font. This is the name used to identify fonts internally and within the PDF file.
>VConstant  NAME_TRADEMARK = 7
Font trademark notice. This is distinct from the {@link NAME_COPYRIGHT}.
>VConstant  NAME_MANUFACTURER = 8
Name of the font manufacturer.
>VConstant  NAME_DESIGNER = 9
Name of the designer of the font.
>VConstant  NAME_DESCRIPTION = 10
Description of the font. May contain revision information, usage recommendations, features, etc.
>VConstant  NAME_VENDOR_URL = 11
URL of the font vendor. Some fonts may contain a unique serial number embedded in this URL, which is used for licensing.
>VConstant  NAME_DESIGNER_URL = 12
URL of the font designer ({@link NAME_DESIGNER}).
>VConstant  NAME_LICENSE = 13
Plain language licensing terms for the font.
>VConstant  NAME_LICENSE_URL = 14
URL of more detailed licensing information for the font.
>VConstant  NAME_PREFERRED_FAMILY = 16
Preferred font family. Used by some fonts to work around a Microsoft Windows limitation where only four fonts styles can share the same {@link NAME_FAMILY} value.
>VConstant  NAME_PREFERRED_STYLE = 17
Preferred font style. A more descriptive string than {@link NAME_STYLE}.
>VConstant  NAME_SAMPLE_TEXT = 19
Suggested text to use as a representative sample of the font.
>VConstant  NAME_CID_NAME = 20
PostScript CID findfont name.
>VConstant  WEIGHT_THIN = 100
Thin font weight.
>VConstant  WEIGHT_EXTRA_LIGHT = 200
Extra-light (Ultra-light) font weight.
>VConstant  WEIGHT_LIGHT = 300
Light font weight.
>VConstant  WEIGHT_NORMAL = 400
Normal (Regular) font weight.
>VConstant  WEIGHT_MEDIUM = 500
Medium font weight.
>VConstant  WEIGHT_SEMI_BOLD = 600
Semi-bold (Demi-bold) font weight.
>VConstant  WEIGHT_BOLD = 700
Bold font weight.
>VConstant  WEIGHT_EXTRA_BOLD = 800
Extra-bold (Ultra-bold) font weight.
>VConstant  WEIGHT_BLACK = 900
Black (Heavy) font weight.
>VConstant  WIDTH_ULTRA_CONDENSED = 1
Ultra-condensed font width. Typically 50% of normal.
>VConstant  WIDTH_EXTRA_CONDENSED = 2
Extra-condensed font width. Typically 62.5% of normal.
>VConstant  WIDTH_CONDENSED = 3
Condensed font width. Typically 75% of normal.
>VConstant  WIDTH_SEMI_CONDENSED = 4
Semi-condensed font width. Typically 87.5% of normal.
>VConstant  WIDTH_NORMAL = 5
Normal (Medium) font width.
>VConstant  WIDTH_SEMI_EXPANDED = 6
Semi-expanded font width. Typically 112.5% of normal.
>VConstant  WIDTH_EXPANDED = 7
Expanded font width. Typically 125% of normal.
>VConstant  WIDTH_EXTRA_EXPANDED = 8
Extra-expanded font width. Typically 150% of normal.
>VConstant  WIDTH_ULTRA_EXPANDED = 9
Ultra-expanded font width. Typically 200% of normal.
>VConstant  EMBED_DONT_EMBED = 1
Do not embed the font in the PDF document.
>VConstant  EMBED_DONT_SUBSET = 2
Embed, but do not subset the font in the PDF document.
>VConstant  EMBED_DONT_COMPRESS = 4
Embed, but do not compress the font in the PDF document.
>VConstant  EMBED_SUPPRESS_EMBED_EXCEPTION = 8
Suppress the exception normally thrown if the font cannot be embedded due to its copyright bits being set.

Properties

>VPropertyprivatearray $_fontFilePaths = array()
static
Array whose keys are the md5 hash of the full paths on disk for parsed fonts. The values are the font objects themselves.
Default valuearray()Details
Type
array
>VPropertyprivatearray $_fontNames = array()
static
Array whose keys are the unique PostScript names of instantiated fonts.
The values are the font objects themselves.
Default valuearray()Details
Type
array

Methods

methodprotected_extractTrueTypeFont(\Zend_Pdf_FileParserDataSource $dataSource, integer $embeddingOptions) : \Zend_Pdf_Resource_Font_OpenType_TrueType
static

Attempts to extract a TrueType font from the data source.

If the font parser throws an exception that suggests the data source simply doesn't contain a TrueType font, catches it and returns null. If an exception is thrown that suggests the TrueType font is corrupt or otherwise unusable, throws that exception. If successful, returns the font object.
Parameters
NameTypeDescription
$dataSource\Zend_Pdf_FileParserDataSource
$embeddingOptionsinteger

Options for font embedding.

Returns
TypeDescription
\Zend_Pdf_Resource_Font_OpenType_TrueTypeMay also return null if the data source does not appear to contain a TrueType font.
Throws
ExceptionDescription
\Zend_Pdf_Exception
methodpublicfontWithName(string $name, integer $embeddingOptions = 0) : \Zend_Pdf_Resource_Font
static

Returns a {@link Zend_Pdf_Resource_Font} object by full name.

This is the preferred method to obtain one of the standard 14 PDF fonts. The result of this method is cached, preventing unnecessary duplication of font objects. Repetitive calls for a font with the same name will return the same object. The $embeddingOptions parameter allows you to set certain flags related to font embedding. You may combine options by OR-ing them together. See the EMBED_ constants defined in {@link Zend_Pdf_Font} for the list of available options and their descriptions. Note that this value is only used when creating a font for the first time. If a font with the same name already exists, you will get that object and the options you specify here will be ignored. This is because fonts are only embedded within the PDF file once. If the font name supplied does not match the name of a previously instantiated object and it is not one of the 14 standard PDF fonts, an exception will be thrown.
Parameters
NameTypeDescription
$namestring

Full PostScript name of font.

$embeddingOptionsinteger

(optional) Options for font embedding.

Returns
TypeDescription
\Zend_Pdf_Resource_Font
Throws
ExceptionDescription
\Zend_Pdf_Exception
methodpublicfontWithPath(string $filePath, integer $embeddingOptions = 0) : \Zend_Pdf_Resource_Font
static

Returns a {@link Zend_Pdf_Resource_Font} object by file path.

The result of this method is cached, preventing unnecessary duplication of font objects. Repetitive calls for the font with the same path will return the same object. The $embeddingOptions parameter allows you to set certain flags related to font embedding. You may combine options by OR-ing them together. See the EMBED_ constants defined in {@link Zend_Pdf_Font} for the list of available options and their descriptions. Note that this value is only used when creating a font for the first time. If a font with the same name already exists, you will get that object and the options you specify here will be ignored. This is because fonts are only embedded within the PDF file once. If the file path supplied does not match the path of a previously instantiated object or the font type cannot be determined, an exception will be thrown.
Parameters
NameTypeDescription
$filePathstring

Full path to the font file.

$embeddingOptionsinteger

(optional) Options for font embedding.

Returns
TypeDescription
\Zend_Pdf_Resource_Font
Throws
ExceptionDescription
\Zend_Pdf_Exception
Documentation was generated by phpDocumentor 2.2.0 .