Skip to content

w3c/epubcheck

Current Release Github All Releases Downloads CI build with Maven

EPUBCheck

EPUBCheck is the official conformance checker for EPUB publications. EPUBCheck can be run as a standalone command-line tool or used as a Java library.

EPUBCheck is open source software, maintained by the DAISY Consortium on behalf of W3C.

We Need Your Support!!
Financial support is critical to the development of EPUBCheck, the tool we all use to validate EPUB files. We need to make sure that the resources are adequate to both update the tool and provide for its continued maintenance over the next two years; please help us fund and support EPUBCheck, and join the list of donators!

Downloads

Check the releases page to get the latest distribution.

EPUBCheck v5.1.0 is the latest production-ready release, to be used to validate both EPUB 2 and 3 files. EPUB 3 publications are checked against the EPUB 3.3 specification.

Documentation

Documentation on how to use EPUBCheck, to contribute to the project or to translate messages is available on the EPUBCheck wiki.

Technical discussions are held on our public mailing list. To subscribe to the mailing list, send an email with subject subscribe to public-epubcheck-request@w3.org. To participate in the discussion, simply send an email to public-epubcheck@w3.org.

Historical archives of discussions prior to October 2017 are stored at the old EPUBCheck Google Group.

Building EPUBCheck

Build from sources

To build epubcheck from the sources you need Java Development Kit (JDK) 1.7 or above and Apache Maven 3.0 or above installed.

Build and run tests:

$ mvn clean install

Will copy *.jar files and packages to target/ folder...

Build using docker

To build the epubcheck using docker, use the build command below:

$ docker build . -t epubcheck

To run the epubcheck image as container, use example command below:

# one directory in the host need to be mapped (using docker volume) to /data path
# within container. the particular path will be used as a bridge to enable access
# over the epub file or the generated output file between host and container.
$ docker run -it --rm -v <directory>:/data epubcheck --help
$ docker run -it --rm -v <directory>:/data epubcheck <epub-file> [OPTIONS]

# example 1:
# execute an epub check over a file located in /home/username/file.epub on the host.
# the output will be printed to the console
$ docker run -it --rm -v /home/username:/data epubcheck file.epub

# example 2:
# execute an epub check over a file, and then generate an output file
# in /data/output.json within container.
# since /data is mapped via volume, then the generated file will be accessible
# from /home/username/output.json in the host
$ docker run - --rm -v /home/username:/data epubcheck file.epub --json output.json

Credits

EPUBCheck v5.1.0 was developed by the DAISY Consortium, on behalf of W3C.

Initial EPUBCheck development was largely done at Adobe. A significant part of EPUBCheck functionality comes from the schema validation tool Jing, used with schemas from the Nu HTML Checker, IDPF, and DAISY.

Past and present EPUBCheck developers include: Romain Deltour, Matt Garrish, Tobias Fischer, Markus Gylling, Steve Antoch, Peter Sorotokin, Thomas Ledoux, Masayoshi Takahashi, Paul Norton, Piotr Kula, Arwen Pond, Liza Daly, Garth Conboy, and several others.

Many thanks to the numerous people who have contributed to the evolution of EPUBCheck through bug reports, pull requests, and translations!

Donators

The following organizations are supporting the development of EPUBCheck by their contribution to the fundraising initiative:

MacMillan Learning Google DAISY Publizon A/S Wiley Hachette Livre LearningMate Solutions Inc Voyager Japan, Inc. QA Info Tech W. W. Norton Lumina Datamatics, Inc. Harper Collins Vital Source Verlag C.H. Beck oHG Libreka Zeilenwert Cenveo Publisher Services BookNet Canada

License

EPUBCheck is made available under the terms of the 3-Clause BSD License