Zend Framework  1.12
Static Public Member Functions | Public Attributes | Static Protected Member Functions | List of all members
Zend_Pdf_Font Class Reference

Static Public Member Functions

static fontWithName ($name, $embeddingOptions=0)
 Returns a Zend_Pdf_Resource_Font object by full name.
 
static fontWithPath ($filePath, $embeddingOptions=0)
 Returns a Zend_Pdf_Resource_Font object by file path.
 

Public Attributes

const TYPE_UNKNOWN = 0
 Unknown font type.
 
const TYPE_STANDARD = 1
 One of the standard 14 PDF fonts.
 
const TYPE_TYPE_1 = 2
 A PostScript Type 1 font.
 
const TYPE_TRUETYPE = 3
 A TrueType font or an OpenType font containing TrueType outlines.
 
const TYPE_TYPE_0 = 4
 Type 0 composite font.
 
const TYPE_CIDFONT_TYPE_0 = 5
 CID font containing a PostScript Type 1 font.
 
const TYPE_CIDFONT_TYPE_2 = 6
 CID font containing a TrueType font or an OpenType font containing TrueType outlines.
 
const FONT_COURIER = 'Courier'
 Name of the standard PDF font Courier.
 
const FONT_COURIER_BOLD = 'Courier-Bold'
 Name of the bold style of the standard PDF font Courier.
 
const FONT_COURIER_OBLIQUE = 'Courier-Oblique'
 Name of the italic style of the standard PDF font Courier.
 
const FONT_COURIER_ITALIC = 'Courier-Oblique'
 Convenience constant for a common misspelling of FONT_COURIER_OBLIQUE.
 
const FONT_COURIER_BOLD_OBLIQUE = 'Courier-BoldOblique'
 Name of the bold and italic style of the standard PDF font Courier.
 
const FONT_COURIER_BOLD_ITALIC = 'Courier-BoldOblique'
 Convenience constant for a common misspelling of FONT_COURIER_BOLD_OBLIQUE.
 
const FONT_HELVETICA = 'Helvetica'
 Name of the standard PDF font Helvetica.
 
const FONT_HELVETICA_BOLD = 'Helvetica-Bold'
 Name of the bold style of the standard PDF font Helvetica.
 
const FONT_HELVETICA_OBLIQUE = 'Helvetica-Oblique'
 Name of the italic style of the standard PDF font Helvetica.
 
const FONT_HELVETICA_ITALIC = 'Helvetica-Oblique'
 Convenience constant for a common misspelling of FONT_HELVETICA_OBLIQUE.
 
const FONT_HELVETICA_BOLD_OBLIQUE = 'Helvetica-BoldOblique'
 Name of the bold and italic style of the standard PDF font Helvetica.
 
const FONT_HELVETICA_BOLD_ITALIC = 'Helvetica-BoldOblique'
 Convenience constant for a common misspelling of FONT_HELVETICA_BOLD_OBLIQUE.
 
const FONT_SYMBOL = 'Symbol'
 Name of the standard PDF font Symbol.
 
const FONT_TIMES_ROMAN = 'Times-Roman'
 Name of the standard PDF font Times.
 
const FONT_TIMES = 'Times-Roman'
 Convenience constant for a common misspelling of FONT_TIMES_ROMAN.
 
const FONT_TIMES_BOLD = 'Times-Bold'
 Name of the bold style of the standard PDF font Times.
 
const FONT_TIMES_ITALIC = 'Times-Italic'
 Name of the italic style of the standard PDF font Times.
 
const FONT_TIMES_BOLD_ITALIC = 'Times-BoldItalic'
 Name of the bold and italic style of the standard PDF font Times.
 
const FONT_ZAPFDINGBATS = 'ZapfDingbats'
 Name of the standard PDF font Zapf Dingbats.
 
const NAME_COPYRIGHT = 0
 Full copyright notice for the font.
 
const NAME_FAMILY = 1
 Font family name.
 
const NAME_STYLE = 2
 Font style within the font family.
 
const NAME_ID = 3
 Unique font identifier.
 
const NAME_FULL = 4
 Full font name.
 
const NAME_VERSION = 5
 Version number of the font.
 
const NAME_POSTSCRIPT = 6
 PostScript name for the font.
 
const NAME_TRADEMARK = 7
 Font trademark notice.
 
const NAME_MANUFACTURER = 8
 Name of the font manufacturer.
 
const NAME_DESIGNER = 9
 Name of the designer of the font.
 
const NAME_DESCRIPTION = 10
 Description of the font.
 
const NAME_VENDOR_URL = 11
 URL of the font vendor.
 
const NAME_DESIGNER_URL = 12
 URL of the font designer (NAME_DESIGNER).
 
const NAME_LICENSE = 13
 Plain language licensing terms for the font.
 
const NAME_LICENSE_URL = 14
 URL of more detailed licensing information for the font.
 
const NAME_PREFERRED_FAMILY = 16
 Preferred font family.
 
const NAME_PREFERRED_STYLE = 17
 Preferred font style.
 
const NAME_SAMPLE_TEXT = 19
 Suggested text to use as a representative sample of the font.
 
const NAME_CID_NAME = 20
 PostScript CID findfont name.
 
const WEIGHT_THIN = 100
 Thin font weight.
 
const WEIGHT_EXTRA_LIGHT = 200
 Extra-light (Ultra-light) font weight.
 
const WEIGHT_LIGHT = 300
 Light font weight.
 
const WEIGHT_NORMAL = 400
 Normal (Regular) font weight.
 
const WEIGHT_MEDIUM = 500
 Medium font weight.
 
const WEIGHT_SEMI_BOLD = 600
 Semi-bold (Demi-bold) font weight.
 
const WEIGHT_BOLD = 700
 Bold font weight.
 
const WEIGHT_EXTRA_BOLD = 800
 Extra-bold (Ultra-bold) font weight.
 
const WEIGHT_BLACK = 900
 Black (Heavy) font weight.
 
const WIDTH_ULTRA_CONDENSED = 1
 Ultra-condensed font width.
 
const WIDTH_EXTRA_CONDENSED = 2
 Extra-condensed font width.
 
const WIDTH_CONDENSED = 3
 Condensed font width.
 
const WIDTH_SEMI_CONDENSED = 4
 Semi-condensed font width.
 
const WIDTH_NORMAL = 5
 Normal (Medium) font width.
 
const WIDTH_SEMI_EXPANDED = 6
 Semi-expanded font width.
 
const WIDTH_EXPANDED = 7
 Expanded font width.
 
const WIDTH_EXTRA_EXPANDED = 8
 Extra-expanded font width.
 
const WIDTH_ULTRA_EXPANDED = 9
 Ultra-expanded font width.
 
const EMBED_DONT_EMBED = 0x01
 Do not embed the font in the PDF document.
 
const EMBED_DONT_SUBSET = 0x02
 Embed, but do not subset the font in the PDF document.
 
const EMBED_DONT_COMPRESS = 0x04
 Embed, but do not compress the font in the PDF document.
 
const EMBED_SUPPRESS_EMBED_EXCEPTION = 0x08
 Suppress the exception normally thrown if the font cannot be embedded due to its copyright bits being set.
 

Static Protected Member Functions

static _extractTrueTypeFont ($dataSource, $embeddingOptions)
 Attempts to extract a TrueType font from the data source.
 

Member Function Documentation

static _extractTrueTypeFont (   $dataSource,
  $embeddingOptions 
)
staticprotected

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
Zend_Pdf_FileParserDataSource$dataSource
integer$embeddingOptionsOptions for font embedding.
Returns
Zend_Pdf_Resource_Font_OpenType_TrueType May also return null if the data source does not appear to contain a TrueType font.
Exceptions
Zend_Pdf_Exception
static fontWithName (   $name,
  $embeddingOptions = 0 
)
static

Returns a 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 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
string$nameFull PostScript name of font.
integer$embeddingOptions(optional) Options for font embedding.
Returns
Zend_Pdf_Resource_Font
Exceptions
Zend_Pdf_Exception
Todo:
It would be cool to be able to have a mapping of font names to file paths in a configuration file for frequently used custom fonts. This would allow a user to use custom fonts without having to hard-code file paths all over the place. Table this idea until Zend_Config is ready.
static fontWithPath (   $filePath,
  $embeddingOptions = 0 
)
static

Returns a 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 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
string$filePathFull path to the font file.
integer$embeddingOptions(optional) Options for font embedding.
Returns
Zend_Pdf_Resource_Font
Exceptions
Zend_Pdf_Exception

Member Data Documentation

const EMBED_DONT_COMPRESS = 0x04

Embed, but do not compress the font in the PDF document.

const EMBED_DONT_EMBED = 0x01

Do not embed the font in the PDF document.

const EMBED_DONT_SUBSET = 0x02

Embed, but do not subset the font in the PDF document.

const EMBED_SUPPRESS_EMBED_EXCEPTION = 0x08

Suppress the exception normally thrown if the font cannot be embedded due to its copyright bits being set.

const FONT_COURIER = 'Courier'

Name of the standard PDF font Courier.

const FONT_COURIER_BOLD = 'Courier-Bold'

Name of the bold style of the standard PDF font Courier.

const FONT_COURIER_BOLD_ITALIC = 'Courier-BoldOblique'

Convenience constant for a common misspelling of FONT_COURIER_BOLD_OBLIQUE.

const FONT_COURIER_BOLD_OBLIQUE = 'Courier-BoldOblique'

Name of the bold and italic style of the standard PDF font Courier.

const FONT_COURIER_ITALIC = 'Courier-Oblique'

Convenience constant for a common misspelling of FONT_COURIER_OBLIQUE.

const FONT_COURIER_OBLIQUE = 'Courier-Oblique'

Name of the italic style of the standard PDF font Courier.

const FONT_HELVETICA = 'Helvetica'

Name of the standard PDF font Helvetica.

const FONT_HELVETICA_BOLD = 'Helvetica-Bold'

Name of the bold style of the standard PDF font Helvetica.

const FONT_HELVETICA_BOLD_ITALIC = 'Helvetica-BoldOblique'

Convenience constant for a common misspelling of FONT_HELVETICA_BOLD_OBLIQUE.

const FONT_HELVETICA_BOLD_OBLIQUE = 'Helvetica-BoldOblique'

Name of the bold and italic style of the standard PDF font Helvetica.

const FONT_HELVETICA_ITALIC = 'Helvetica-Oblique'

Convenience constant for a common misspelling of FONT_HELVETICA_OBLIQUE.

const FONT_HELVETICA_OBLIQUE = 'Helvetica-Oblique'

Name of the italic style of the standard PDF font Helvetica.

const FONT_SYMBOL = 'Symbol'

Name of the standard PDF font Symbol.

const FONT_TIMES = 'Times-Roman'

Convenience constant for a common misspelling of FONT_TIMES_ROMAN.

const FONT_TIMES_BOLD = 'Times-Bold'

Name of the bold style of the standard PDF font Times.

const FONT_TIMES_BOLD_ITALIC = 'Times-BoldItalic'

Name of the bold and italic style of the standard PDF font Times.

const FONT_TIMES_ITALIC = 'Times-Italic'

Name of the italic style of the standard PDF font Times.

const FONT_TIMES_ROMAN = 'Times-Roman'

Name of the standard PDF font Times.

const FONT_ZAPFDINGBATS = 'ZapfDingbats'

Name of the standard PDF font Zapf Dingbats.

const NAME_CID_NAME = 20

PostScript CID findfont name.

const NAME_COPYRIGHT = 0

Full copyright notice for the font.

const NAME_DESCRIPTION = 10

Description of the font.

May contain revision information, usage recommendations, features, etc.

const NAME_DESIGNER = 9

Name of the designer of the font.

const NAME_DESIGNER_URL = 12

URL of the font designer (NAME_DESIGNER).

const NAME_FAMILY = 1

Font family name.

Used to group similar styles of fonts together.

const NAME_FULL = 4

Full font name.

Usually a combination of the NAME_FAMILY and NAME_STYLE strings.

const NAME_ID = 3

Unique font identifier.

const NAME_LICENSE = 13

Plain language licensing terms for the font.

const NAME_LICENSE_URL = 14

URL of more detailed licensing information for the font.

const NAME_MANUFACTURER = 8

Name of the font manufacturer.

const NAME_POSTSCRIPT = 6

PostScript name for the font.

This is the name used to identify fonts internally and within the PDF file.

const 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 NAME_FAMILY value.

const NAME_PREFERRED_STYLE = 17

Preferred font style.

A more descriptive string than NAME_STYLE.

const NAME_SAMPLE_TEXT = 19

Suggested text to use as a representative sample of the font.

const NAME_STYLE = 2

Font style within the font family.

Examples: Regular, Italic, Bold, etc.

const NAME_TRADEMARK = 7

Font trademark notice.

This is distinct from the NAME_COPYRIGHT.

const 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.

const NAME_VERSION = 5

Version number of the font.

const 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

const 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

const TYPE_STANDARD = 1

One of the standard 14 PDF fonts.

const TYPE_TRUETYPE = 3

A TrueType font or an OpenType font containing TrueType outlines.

const TYPE_TYPE_0 = 4

Type 0 composite font.

const TYPE_TYPE_1 = 2

A PostScript Type 1 font.

const TYPE_UNKNOWN = 0

Unknown font type.

const WEIGHT_BLACK = 900

Black (Heavy) font weight.

const WEIGHT_BOLD = 700

Bold font weight.

const WEIGHT_EXTRA_BOLD = 800

Extra-bold (Ultra-bold) font weight.

const WEIGHT_EXTRA_LIGHT = 200

Extra-light (Ultra-light) font weight.

const WEIGHT_LIGHT = 300

Light font weight.

const WEIGHT_MEDIUM = 500

Medium font weight.

const WEIGHT_NORMAL = 400

Normal (Regular) font weight.

const WEIGHT_SEMI_BOLD = 600

Semi-bold (Demi-bold) font weight.

const WEIGHT_THIN = 100

Thin font weight.

const WIDTH_CONDENSED = 3

Condensed font width.

Typically 75% of normal.

const WIDTH_EXPANDED = 7

Expanded font width.

Typically 125% of normal.

const WIDTH_EXTRA_CONDENSED = 2

Extra-condensed font width.

Typically 62.5% of normal.

const WIDTH_EXTRA_EXPANDED = 8

Extra-expanded font width.

Typically 150% of normal.

const WIDTH_NORMAL = 5

Normal (Medium) font width.

const WIDTH_SEMI_CONDENSED = 4

Semi-condensed font width.

Typically 87.5% of normal.

const WIDTH_SEMI_EXPANDED = 6

Semi-expanded font width.

Typically 112.5% of normal.

const WIDTH_ULTRA_CONDENSED = 1

Ultra-condensed font width.

Typically 50% of normal.

const WIDTH_ULTRA_EXPANDED = 9

Ultra-expanded font width.

Typically 200% of normal.