The Code4Lib Journal – EPUB as Publication Format in Open Access Journals: Tools and Workflow[22.04.2014 08:29:06]
Current Issue
Issue 24, 2014-04-16
Previous Issues
Issue 23, 2014-01-17
Issue 22, 2013-10-14
Issue 21, 2013-07-15
Issue 20, 2013-04-17
Older Issues
For Authors
Call for Submissions
Article Guidelines
ISSN 1940-5758
Issue 24, 2014-04-16
EPUB as Publication Format in Open
Access Journals: Tools and Workflow
In this article, we present a case study of how the main publishing format
of an Open Access journal was changed from PDF to EPUB by designing
a new workflow using JATS as the basic XML source format. We state
the reasons and discuss advantages for doing this, how we did it, and the
costs  of  changing  an  established  Microsoft  Word  workflow.  As an
example, we use one typical sociology article with tables, illustrations and
references. We then follow the article from JATS markup through different
transformations  resulting  in  XHTML,  EPUB  and  MOBI  versions. In the
end,  we  put  everything  together  in  an  automated  XProc pipeline. The
process  has  been  developed  on  free  and  open  source  tools, and we
describe and evaluate these tools in the article. The workflow is suitable
for  non-professional  publishers,  and  all  code  is  attached  and  free for
reuse by others.
by Trude Eikebrokk, Tor Arne Dahl and Siri Kessel, Oslo and Akershus University
College of Applied Sciences; with thanks to: Eirik Hanssen
Oslo and Akershus University College of Applied Sciences (HiOA) offers a
publishing platform based on the open source software Open Journal Systems
(OJS) The Learning Centre and Library maintains the platform.
After a couple of years working with Open Access publishing it has become
apparent that many online journals are still based on a print-centric publication
model. It is easy to establish an e-journal using a traditional print workflow in an
academic environment, because most researchers use a word processor as their
major work tool. Many know a bit about copy-editing from their contact with
scholarly journals, and current word processors can save documents as PDF
files. That is why PDF is the standard format used in the Open Access journals
appearing outside the professional publishing industry.
We decided to establish a project with the goal of creating a new workflow for the
journals using EPUB as the main publication format. The project succeeded, and
our aim is to share  experiences and guide others planning to do the same.
Why not PDF?
There are two important reasons why we wanted to replace PDF as our primary
e-journal format.
Device independency
We started considering alternatives to PDF after trying to read some of the
journal articles on e-book readers (a Sony Reader Touch PRS-650 and a
PaperCaster Boox). PDF files do not work well on these E Ink devices. There are
Editorial Committee
Process and Structure
Pdf hyperlinks - insert, remove PDF links in, ASP.NET, MVC, Ajax, WinForms, WPF
Free C# example code is offered for users to edit PDF document hyperlink (url), like inserting and deleting
add hyperlink pdf document; add links to pdf acrobat
Pdf hyperlinks - VB.NET PDF url edit library: insert, remove PDF links in, ASP.NET, MVC, Ajax, WinForms, WPF
Help to Insert a Hyperlink to Specified PDF Document Page
add hyperlink to pdf in preview; adding a link to a pdf in preview
The Code4Lib Journal – EPUB as Publication Format in Open Access Journals: Tools and Workflow[22.04.2014 08:29:06]
font problems and it is hard to scale the text size. There are solutions to some of
these problems, but PDF is a print format. It will never be the best choice for
reading on tablets (e.g. iPad) or smartphones, and it is challenging to read PDF
files on e-book readers with E Ink displays (like most Amazon Kindle models and
the Sony Reader). We wanted to replace or supplement the PDF format with
EPUB to better support digital reading. This means that we needed to change the
entire workflow in the journal in order to take full advantage of the opportunities
provided by digital publishing.
Universal design and accessibility
Our second reason for replacing PDF with EPUB was to alleviate accessibility
challenges. PDF is a format that can cause many barriers, especially for users of
screen readers (synthetic speech or braille). For example, Excel tables are
converted into images, which makes it impossible for screen readers to access
the table content. PDF documents might also lack search and navigation support,
due to either security restrictions, a lack of coded structure in text formats, or the
use of PDF image formats. This can make it difficult for any reader to use the
document effectively and impossible for screen reader users. On the other hand,
correct use of XHTML markup and CSS style sheets in an EPUB file will result in
search and navigation functionalities, support for text-to-speech/braille and
speech recognition technologies.
In the last decade, accessibility and universal design have become a legal issue,
both nationally and internationally. Access to web content is required through
article 9 in the UN convention on the rights of persons with disabilities (CRPD) [1]
and some national anti-discrimination legislation and procurement regulations.
The Norwegian Discrimination and Accessibility Act (DAA) [2] authorizes
universal design of ICT in articles 13 and 14, and associated regulations for ICT
will come into force July 1, 2014.  DAA defines universal design as “can be used
by as many people as possible”.
Accessibility is therefore an essential aspect of publishing e-journals: we must
consider diverse user perspectives and make universal design a part of the
publishing process.
As early as in 1996, the World Wide Web Consortium (W3C) established the
Web Accessibility Initiative (WAI).  WAI has made technical guidelines for
accessibility for all, e.g. to web content [3][4] and authoring tools [5][6]. The
Norwegian standardization organization (Standards Norway) released a standard
for electronic documents in 2013.  These guidelines and standards are useful
tools when establishing a new publication workflow and format for e-journals.
It is difficult to apply the WAI guidelines and make the e-journals fully accessible
within the current workflow of e-journal publishing at HiOA. Some of the main
requirements for universally designed e-journals that can be satisfied by the
EPUB format are:
text format
compatibility with different devices, software and older versions of devices
and software
structured markup of titles, headings, links, notes, tables, etc.
informative alternative text on graphs and essential images
layout with style sheets
C# PDF Convert to HTML SDK: Convert PDF to html files in
Embed zoom setting (fit page, fit width). Turn PDF form data to HTML form. Export PDF images to HTML images. Embed PDF hyperlinks to HTML links.
add link to pdf file; adding links to pdf document
VB.NET PDF Convert to HTML SDK: Convert PDF to html files in vb.
Turn PDF images to HTML images in VB.NET. Embed PDF hyperlinks to HTML links in VB.NET. Available zoom setting (fit page, fit width).
adding links to pdf; pdf link to attached file
The Code4Lib Journal – EPUB as Publication Format in Open Access Journals: Tools and Workflow[22.04.2014 08:29:06]
liquid layout of font size and line space, enlarging that adjust to the screen
high contrast between text and background
highlighting of text or items in at least two ways
EPUB solves both of the problems mentioned above. EPUB is a reflowable
format. This means that the text will always fit the screen without the need for
horizontal scrolling. The user can increase and decrease the font size without
any changes in page width. This accessibility quality has always been a design
goal of the W3C web standards. EPUB is based on web standards and inherits
these qualities.
Additionally, EPUB is an open standard maintained by the International Digital
Publishing Forum (IDPF). On the other hand, Amazon’s file format AZW/MOBI is
a proprietary format. Amazon Kindle devices cannot read EPUB files directly, but
free tools like Calibre can easily convert an EPUB file to the native Amazon
Kindle format.
EPUB has other advantages as well. The current version, EPUB 3 from October
2011, is based on a subset of HTML5 and CSS3, making it more suitable for
multimedia content than earlier versions. At present, few reading devices and
applications support EPUB 3.
EPUB 2 from 2007 is still the most widely used and supported version of the
format and works well for most academic journals. That is why we will
concentrate on EPUB 2 in this article.
The case
Our goal was to change the publication format in Professions & Professionalism
from PDF to EPUB. Professions & Professionalism is an Open Access journal
that “invites research-based empirical, theoretical or synoptic articles focusing on
traditional professions as well as other knowledge-based occupational groups
approached from any perspective or discipline” [7]. The first issue was published
in November 2011. The articles have CC-BY licences and are typically text-
based with references, footnotes and tables. Some contain images, too.
The current workflow follows these steps:
1.  The authors upload their articles to the OJS software. Most articles are
uploaded as Microsoft Word documents (meaning the DOCX format).
2.  The editors distribute these Microsoft Word documents for peer-review and
send the comments to the authors.
3.  The authors update their Microsoft Word documents according to the peer
reviewers’ comments and re-upload them into OJS.
4.  The copy-editor does the finishing work on layout, proofreading and
reference-checking. When finished, a document is saved as a PDF file.
5.  The editor sends the PDF file by e-mail to the author, who will then check
the final layout.
VB.NET PDF Page Replace Library: replace PDF pages in, ASP.
DotNetNuke), SharePoint. Able to replace all PDF page contents in VB.NET, including text, image, hyperlinks, etc. Professional VB.NET
add a link to a pdf file; adding links to pdf in preview
.NET PDF SDK | Read & Processing PDF files
of text, hyperlinks, bookmarks and metadata; Advanced document cleanup and image processing options provided; Annotate and redact in PDF documents; Fully support
accessible links in pdf; add hyperlinks to pdf
The Code4Lib Journal – EPUB as Publication Format in Open Access Journals: Tools and Workflow[22.04.2014 08:29:06]
6.  If there are changes, the copy-editor will apply the changes and save the
final PDF document that is the published online version of the article.
First attempt: Conversion tools
At first, we thought this was going to be a very simple project requiring little effort.
We would apply some of the easy-to-use DOC to EPUB converters freely
available and end up with well-formatted and functional EPUBs ready for
publishing. Our prediction was that we maybe would have to ask the journal
managers to tweak a thing or two in their original Microsoft Word files, but under
no circumstances did we expect to have to make any big changes in the journal’s
existing method of editorial work.
We researched what kinds of tools were available for EPUB conversion. The
following table describes the tools we tested and some of the issues we
encountered. To validate the results, we used EpubCheck.
Main issues
An open
source e-book
application that
can convert e-
books to
Calibre is unable to
convert directly from
DOCX (Microsoft Word),
but can convert the Open
Document format (ODT).
There are tools for DOCS
to ODT conversion, for
example by way of
OpenOffice or LibreOffice.
Broken tables,
separated image and
captions, footnotes at
end of article counting
only to 9. The
remaining footnotes
had number 1. Missing
headers and footers.
EPUB file not valid.
A multi-
platform EPUB
ebook editor
and open
Sigil converts the DOCX
file to filtered XHTML and
packs it as an EPUB file.
EPUB file not valid.
extension that
creates an
EPUB files
from the word
Install the Open Office
extension. Open the
document; choose
Writer2epub to generate
the EPUB file. Mainly a
voluntary effort.
Images missing. EPUB
file not valid.
InDesign has
native support
for EPUB
Create or open a
document in Adobe
InDesign. Export the
document to EPUB.
EPUB file not valid.
None of our journals
actually uses InDesign
in their publishing
process, so that would
mean another tool for
them to learn. Also
licensed, so they
would have to pay for
None of the resulting EPUB files were valid. Because non-valid EPUB files give
unpredictable results on different reading devices (with some e-readers even
rejecting such files), none of the tools we tested seemed conducive to
accessibility in our academic e-journals.
VB.NET PDF Thumbnail Create SDK: Draw thumbnail images for PDF in
application. Generating thumbnail for PDF document is an easy work and gives quick access to PDF page and file, or even hyperlinks. This
add hyperlink to pdf acrobat; change link in pdf
PDF Image Viewer| What is PDF
advanced capabilities, such as text extraction, hyperlinks, bookmarks and metadata as well as updating, splitting and merging pages from existing PDF documents
add links to pdf online; pdf link
The Code4Lib Journal – EPUB as Publication Format in Open Access Journals: Tools and Workflow[22.04.2014 08:29:06]
New workflow
Since none of the existing conversion tools were sufficient, we decided to change
direction and start looking into developing our own conversion workflow. We
considered marking up the journal articles directly as EPUB, but discarded this
approach because EPUB, like XHTML, is more of a presentation format than a
rich semantic publishing format. For instance, footnotes and references are
typical parts of a journal article, but there are no such elements in XHTML.
Because an EPUB file is a collection of XML files, creating our own XML-based
process to generate EPUB files seemed possible. We also saw XML as an ideal
format for long-term preservation of the articles: it is open (not proprietary), can
be read by humans and machines and is software independent.
Input: The Journal Article Tag Suite (JATS)
Public Library of Science (PLOS) is the flagship of Open Access publishing,
currently publishing seven peer-reviewed Open Access journals. The main
publishing format in the PLOS journals is the native web format (in this case
XHTML 1.0 Transitional) with lots of hypertext links, for instance in the references
section (for an example article, see Michel and Knouft [8]). PDF and—most
interesting for us—XML are alternative formats.
PLOS uses Journal Publishing Tag Set Version 3.0 as its XML source format.
The National Center for Biotechnology Information (NCBI), which is part of the
U.S. National Library of Medicine (NLM), develops and maintains this XML
application. The Journal Publishing Tag Set is part of a larger family of XML
applications called NLM Journal Archiving and Interchange Tag Suite. PubMed
Central, the free archive of biomedical and life sciences journal literature at the
U.S. Library of Medicine, requires use of the tag set in their file submission
specification [9].
When we started working on our project, we found out that the tag suite was
being prepared for a National information Standards Organization (NISO)
standardization process. NISO formally approved the standard on 9 August 2012,
and it is referred to as Journal Article Tag Suite (JATS), version 1.0 (ANSI/NISO
Z39.96-2012). This is the version we have used in markup and will refer to from
now on in the text.
Output: EPUB
EPUB 2 consists of three sub specifications: the Open Publication Structure
(OPS), the Open Packaging Format (OPF) and the Open Container Format
(OCF) [10]. The resulting EPUB 2 file is a zipped archive of a simple file structure
including some required files with metadata information about the files in the
archive. A typical and simple EPUB file has this content:
A root folder with one file called mimetype. This file always has this content:
A subfolder called OEBPS (an acronym for Open eBook Publication
Structure, which is inherited from EPUB’s predecessor file format). The
subfolder has the following content:
All the files with the main content of the EPUB 2 file, i.e. XHTML for
structure and content, CSS for presentation, and any pertaining image
The Code4Lib Journal – EPUB as Publication Format in Open Access Journals: Tools and Workflow[22.04.2014 08:29:06]
files. These files can be organized in subfolders or put directly into the
OEBPS folder.
The EPUB “root file”, which is an XML file with the suffix .opf. The file
has a metadata part (described in Dublin Core), a manifest part (a list of
all the files in the EPUB zip file), and a spine part (defining the linear
reading order of the files in the manifest part). The complete structure of
this file is described in the OPF specification.
A navigation control XML file (with the suffix .ncx) that works like a
table of contents and will help the user navigate through the content.
A subfolder called META-INF with only one file called container.xml (this
is the only required file in the folder according to the EPUB 2 specification).
The XML file has a reference to the name of a required OPF file (the EPUB
“root file”) located in the OEBPS folder.
The figure below illustrates the old and the new workflow. The lower part of the
figure shows the old workflow, where we simply save the Microsoft Word articles
as PDF and publish them online.
The upper part of the figure illustrates the new workflow. We mark up the content
of the Microsoft Word document from the old workflow as a JATS XML
document, and that is the only manual work to do. We generate the different
publishing formats—XHTML, EPUB and MOBI—by running a script which is
attached to this article.
The National Center for Biotechnology Information (NCBI) has created a toolset
of XSLT style sheets for transforming JATS documents to (X)HTML and XSL-FO.
We have only implemented the EPUB workflow so far but will create PDF
versions by way of the XSL-FO style sheet in the future.
Building the EPUB file is not part of the NCBI toolset, so that is our contribution
to the production pipeline. We did this by adding XSLT style sheets transforming
the JATS source file into the mandatory files in the EPUB file structure explained
The Code4Lib Journal – EPUB as Publication Format in Open Access Journals: Tools and Workflow[22.04.2014 08:29:06]
Our goal was to automate the EPUB production process completely. The NCBI
toolset provides two shells or pipelines, putting all the steps together. One of
them uses proprietary Saxon extensions and the other uses XProc, which is a
W3C recommendation.
In the following sections, we go through the steps in the new workflow used in
Professions & Professionalism to replace the PDF format with three digitally
native formats: XHTML, EPUB and MOBI. To illustrate, we use the article
Medical management in Norwegian hospitals by Ivan Spehar and Lars Erik
Kjekshus [11] from Professions & Professionalism.
The article contains 4 tables, 2 illustrations and 56 references of different kinds
(books, chapters in anthologies, journal articles, reports and PhD theses). We
chose the example article because of its complexity, which should provide others
with multiple templates for XML markup.
JATS markup
As mentioned, we chose JATS 1.0 as the native XML application in the new
workflow. All XML files, including the example article, conform to this standard (or
more specifically the Journal Publishing Tag Set that is a part of JATS).
When we start JATS markup, we have the final Microsoft Word version of the
article. We consider it unrealistic and unnecessary to use XML throughout the
work cycle. Microsoft Word is the daily writing tool for the article authors and the
copy-editor, and we do not want to change their already efficient collaboration
and communication.
We copy and paste the text from the Microsoft Word document to the content of
the root element of a JATS document in an XML editor. There are many XML
editors to choose from. Some are parts of integrated and commercial software
packages, like Liquid XML Studio, Oxygen XML Editor and XMLSpy, but we
chose the simpler XML Copy Editor, which is free software released under the
GNU General Public License (GPL) version 2.
XML Copy Editor has the basic features that we needed to do most of the
markup and transformations: XML editor, validation against DTDs and XML
Schemas, and XSLT transformations. It only supports XSLT and XPath version
1.0, but that works in most cases.
The example JATS document has three parts, which are child elements to the
root element:
head: Metadata about the article, including title, authors and their affiliations,
classification and subject headings, license and the abstract.
body: The main content of the article, divided into sections and paragraphs.
back: This is the reference section.
The markup of the head part is not very challenging, but the journal has to have
some clear principles about classification and subject headings to create a
taxonomy that clusters articles about the same topics together. This will help
navigation on the website as the number of archived issues increases.
We use a standard CC-BY license on all our articles. For this, JATS has a
The Code4Lib Journal – EPUB as Publication Format in Open Access Journals: Tools and Workflow[22.04.2014 08:29:06]
permissions element, which is a child to the head element:
The body part is straightforward markup for anyone familiar with HTML. Some
elements have different names in JATS (for example, italic for i, bold for b),
but the semantics are the same. The hierarchical structure of the article is
marked up using the sec element (which uses semantics identical to section in
HTML5). Sections can be nested into any number of subsection levels. Each
(sub)section has a title, which is the heading. Paragraphs are marked up
using the p element, just as in HTML. Manual markup of tables is time-
consuming, but not difficult. However, we emphasize the need for correct markup
of row and column headings for accessibility reasons.
The most complex markup is the reference section in the back part of the JATS
document. The references can either be marked up using the element-
citation element, or the mixed-citation element. The difference is that
element-citation is a strictly structural markup of the bibliographic
description of the work, while mixed-citation is a simpler, more
presentational markup of it. Using mixed-citation, spacing and punctuation
are preserved during transformation to other formats like HTML or PDF. With
element-citation, the XSLT style sheet is responsible for spacing,
punctuation and italicization.
We chose to use element-citation because of its rich semantics. The
structural markup takes more effort than mixed-citation, where just some
parts of the description are marked up, but the richer semantics provide more
The examples below show the differences between the two markup styles on a
bibliographic description of an online journal article. First is the element-
citation version that we have used:
<license license-type="open-access"
<license-p>This is an open-access article distributed 
under the terms
of the Creative Commons Attribution License, which permits
unrestricted use, distribution, and reproduction in any 
provided the original work is properly cited.</license-p>
<ref id="AW2008">
<element-citation publication-type="journal"
<person-group person-group-type="author">
<article-title>Do diseases have a prestige hierarchy? A 
survey among
physicians and medical students</article-title>
<source>Social Science &amp; Medicine</source>
The Code4Lib Journal – EPUB as Publication Format in Open Access Journals: Tools and Workflow[22.04.2014 08:29:06]
As can be seen, every part of the bibliographic description is marked up with
elements. On the other hand, a mixed-citation has mixed content with only
some parts marked up. The dots, commas, brackets, and other punctuation are
preserved through transformations. This can be an advantage when dealing with
uncommon publication types.
In both cases, the citation has the parent element ref, which has the mandatory
attribute id. The value of the id attribute must be a unique identifier for the
reference in the XML document. This identifier is used as a cross-reference
when citing the work in the article. JATS has the xref element for this. The
xref element can take several attributes, but we only use two of them:
ref-type: The type of reference. For bibliographic references, bibr is the
correct value.
rid: The cross-reference to the unique identifier in the reference list. If the
value of the attribute is not in the reference list, the XML document will not
be valid.
When citing the reference in the example, the XML markup looks like this:
The unique identifiers are very important, but the person doing the markup must
make them up. We found a system for creating them that simplifies markup and
ensures the quality of the reference list. We combine the first letters of the
authors’ surnames with the publishing year, and then, if the combination is not
unique, we add a letter (a, b, c etc.). In the example, the identifier is AW2008
from Album, D., & Westin, S. (2008). As mentioned, the JATS document will not
be valid if the rid attribute value of an xref does not match the identifier in the
reference list. We have found several errors in the published articles this way.
Transformation to XHTML
The process of transforming a JATS document to an XHTML document using the
NCBI toolset has three steps:
1.  Pre-process the reference list. The toolset has XSLT style sheets for two
citation styles, American Psychological Association (APA) and NLM/PubMed
Central guidelines.
<ref id="AW2008">
<mixed-citation publication-type="journal">Album, D., 
&amp; Westin, S.
(2008). Do diseases have a prestige hierarchy? A survey 
among physicians
and medical students. <source>Social Science &amp; 
<volume>66</volume>(1), 182-188.
<xref ref-type="bibr" rid="AW2008">Album &amp; Westin, 
The Code4Lib Journal – EPUB as Publication Format in Open Access Journals: Tools and Workflow[22.04.2014 08:29:06]
2.  Transform the result document from step 1 to HTML.
3.  Post-process the HTML document from step 2 to XHTML.
In our case, we have to go through all these steps, since our main goal is to
produce EPUB files, and EPUB requires XHTML 1.1 for the main content file.
The journals use APA as citation style, so we chose APA transformation as the
base XSLT style sheet for references in the pipeline.
The main XSLT style sheet is jats-html.xsl, the web preview style sheet.
There is also a CSS style sheet for the web presentation, jats-preview.css.
None of them fit all our needs, so we had to customize them, just as we had to
do with the APA pre-processing style sheet. We had to recreate the look-and-
feel of the journal on the web and in the EPUB version.
We have used a trial-and-error approach in the project. We succeeded in the
end, eventually realizing that merging changes directly into the NCBI style sheets
is not the proper way of doing it. Piez calls this the ‘monolithic’ customization
method [12]. All custom changes will be lost when upgrading the toolset. In his
article, Piez recommends ‘vertical customization’, which means creating separate
XSLT and CSS style sheets with custom templates and styles and then importing
the NCBI master style sheets into them. The custom templates and styles will
then override the master when needed, otherwise falling back on the master style
sheet. In XSLT, the xsl:import instruction does the trick; in CSS the @import
rule achieves the same.
Our custom style sheets—hioa-citations-prep-APAcit.xsl, hioa-
xhtml.xsl and hioa-web.css—are provided with the article. The particular
adjustments we have made will probably be of no use to others, but we would
like to stress the importance of creating a vertical customization from the start. It
will save you hours of work compared to separating them from the master style
sheets afterwards.
It is also worth mentioning that the reference pre-processing style sheets from
NCBI are using XSLT 2.0, which XML Copy Editor does not support. To run
these transformations in tests before the final XProc pipeline, we had to
download an XSLT 2.0 transformation engine. We chose Saxon-HE.
Packaging the EPUB file
The file structure of an EPUB file is described in the previous section titled
Output: EPUB. All the mandatory files in the file structure are either static files or
results of XSLT transformations of the JATS source file.
The XHTML version of the article is the output from the transformation described
in the previous section. We use our customized CSS style sheet for presentation.
These and any image files (GIF, JPEG, PNG) must be copied to the OEBPS
folder or subfolders. mimetype and container.xml are static files. Only two
files, content.opf (the EPUB root file) and toc.ncx (the table of contents)
depend on the content of the particular EPUB file.
We can generate both of these files from the source JATS file using XSLT. We
provide two style sheets: epub-content.opf.xsl for the EPUB root file and
epub-toc.ncx.xsl for the table of contents file. They should be applicable for
any other journal using the same process as we are describing here. The XSLT
style sheet fetches the variable file content (title, author, metadata etc.) from the
Documents you may be interested
Documents you may be interested