EBook::EPUB - module for generating EPUB documents
# Create EPUB object
my $epub = EBook::EPUB->new;
# Set metadata: title/author/language/id
$epub->add_title('Three Men in a Boat');
$epub->add_author('Jerome K. Jerome');
# Add package content: stylesheet, font, xhtml and cover
my $chapter_id = $epub->copy_xhtml('/path/to/page1.xhtml',
linear => 'no'
# Add top-level nav-point
my $navpoint = $epub->add_navpoint(
label => "Chapter 1",
id => $chapter_id,
content => 'page1.xhtml',
play_order => 1 # should always start with 1
# Add cover image
# Not actual epub standart but does the trick for iBooks
my $cover_id = $epub->copy_image('/path/to/cover.jpg', 'cover.jpg');
# Generate resulting ebook
Create an EBook::EPUB object
Set the title of the book
Set a unique identifier for the book, such as its ISBN or a URL
Add author of the document. For details see add_contributor.
Add primary creator or author of the publication of the publication. See add_contributor for details
Add person/organization that contributed to publication. $name is the name in human-readable form, e.g. "Arthur Conan Doyle", $formal_name is in form, suitable for machine processing, e.g. "Doyle, Arthur Conan". $role reflects kind of contribution to document. See Section 2.2.6 of OPF specification for list of possible values http://www.idpf.org/2007/opf/OPF_2.0_final_spec.html#Section2.2.6
Date of publication, in the format defined by "Date and Time Formats" at http://www.w3.org/TR/NOTE-datetime and by ISO 8601 on which it is based. In particular, dates without times are represented in the form YYYY[-MM[-DD]]: a required 4-digit year, an optional 2-digit month, and if the month is given, an optional 2-digit day of month. $event is an optional description of event that date refers to. Possible values may include: creation, publication, and modification.
Add description of the publication content
The media type or dimensions of the resource. Best practice is to use a value from a controlled vocabulary (e.g. MIME media types).
Add language of the content of the publication. $lang must comply with RFC 3066 (see http://www.ietf.org/rfc/rfc3066.txt)
An identifier of an auxiliary resource and its relationship to the publication.
A statement about rights, or a reference to one. In this specification, the copyright notice and any further rights description should appear directly.
Information regarding a prior resource from which the publication was derived
Add subject of the publication
Add translator of the document. $name is in human-readable form, e.g. "Arthur Conan Doyle", $formal_name is in form, suitable for machine processing, e.g. "Doyle, Arthur Conan"
type includes terms describing general categories, functions, genres, or aggregation levels for content. The advised best practice is to select a value from a controlled vocabulary.
Add refrence to an OPS Content Document that is a part of publication. %opts is an anonymous hash, for possible key values see EBook::EPUB::NCX::NavPoint. Method returns created EBook::EPUB::NCX::NavPoint object that could be used later for adding subsections.
Add non-standard item to metadata e.g. metadata from source documetn that is not described in Doublin Core spec.
Add xhtml data $data to $filename in package. Returns id of newly added entry.
%opts is an anonymous hash array of parameters:
'yes' or 'no'
Add stylesheet data $data as $filename in package. Returns id of newly added entry.
Add image data $data as $filename in package with content type $type (e.g. image/jpeg). Returns id of newly added entry.
Add existing xhtml file $source_file as $filename in package. Returns id of newly added entry.
Add existing css file $source_file as $filename in package. Returns id of newly added entry.
Add existing image file $source_file as $filename in package and set its content type to $type (e.g. image/jpeg). Returns id of newly added entry.
Add existing file $source_file as $filename in package and set its content type to $type (e.g. text/plain). Returns id of newly created entry. Returns id of newly added entry.
Add existing file $source_file as $filename in package and set its content type to $type (e.g. text/plain) Apply Adobe copy protection scheme to this file using book UUID as a key. Function croaks if key has not been set previously using. Returns id of newly added entry.
Generate OCF Zip container with contents of current package
Oleksandr Tymoshenko, <firstname.lastname@example.org>
Please report any bugs or feature requests to <email@example.com>
Copyright 2009, 2010 Oleksandr Tymoshenko.
This module is free software; you can redistribute it and/or modify it under the terms of the BSD license. See the LICENSE file included with this distribution.
To install EBook::EPUB, copy and paste the appropriate command in to your terminal.
perl -MCPAN -e shell
For more information on module installation, please visit the detailed CPAN module installation guide.