EPUB

Izvor: Wikipedija

EPUB (engl. electronic publication) je računalni datotečni format za digitalne knjige, stripove, mange i ostale tiskane publikacije. EPUB datoteke imaju nastavak .epub. Ponekad se stilizira kao ePub. International Digital Publishing Forum (IDPF) objavio je EPUB kao normativni standard razvijen proširenjem OEBPS standarda. Standard je postao služben u rujnu 2007. godine, čime i službeno zamjenjuje OEBPS.[1]

Specifikacija datoteke[uredi | uredi kôd]

EPUB datoteka je ZIP datoteka sa strukturom svojevrsnog spremnika (container) za sve datoteke koje su potrebne da bi se knjiga uspješno prikazala i radila očekivano.

Sve datoteke unutar EPUB publikacije moraju biti sukladne OPS/OPF standardu, koji definira poredak i sadržaj datoteka u ZIP spremniku.

Prva datoteka u ZIP spremniku nosi ime mimetype bez datotečnog nastavka, a njezin sadržaj semantički definira format e-knjige. U slučaju EPUB-a, sadržaj mimetype datoteke mora biti tekst application/epub+zip. Mimetype datoteka ne smije biti komprimirana ni enkriptirana, i mora biti prva dodana u ZIP.

U ZIP datoteci zatim mora postojati mapa (folder) imena META-INF, unutar kojeg mora postojati datoteka container.xml. Ova XML datoteka pokazuje na datoteku koja definira sadržaj knjige (obično package.opf datoteka). Primjer sadržaja container.xml datoteke:

<?xml version='1.0' encoding='utf-8'?>
<container xmlns="urn:oasis:names:tc:opendocument:xmlns:container" version="1.0">
  <rootfiles>
    <rootfile media-type="application/oebps-package+xml" full-path="epub/package.opf"/>
  </rootfiles>
</container>

Sve ostale datoteke potrebne za rad EPUB e-knjige stavljaju se u posebnu mapu (često nazvanu paket), obično imena OEBPS ili EPUB, iako ime nije ograničeno standardom. Unutar te mape se mora nalaziti i datoteka package.opf, koja definira sadržaj i podatke o knjizi.

package.opf datoteka[uredi | uredi kôd]

Datoteka package.opf ima tri obavezna dijela, elemente metadata, manifest, i spine.

<?xml version="1.0" encoding="UTF-8"?>
<package xmlns="http://www.idpf.org/2007/opf" version="3.0" xml:lang="en" unique-identifier="pub-id">
    <metadata xmlns:dc="http://purl.org/dc/elements/1.1/">
        ...
    </metadata>
    <manifest>
        ...
    </manifest>
    <spine>
        ...
    </spine>
</package>
  • Element metadata definira općenite podatke o knjizi, poput naslova, autora, jezika, autorskih prava, izdavačke kuće, žanra, i sličnih. za svaku od ovih stavki postoje definirani XML tagovi.
  • Element manifest popisuje sve datoteke potrebne kako bi e-knjiga bila uspješno prikazana (XHTML i CSS datoteke, slike, fontovi, audio i video zapisi, i slično). Po potrebi se definira tip medijske datoteke (ako nije XHTML ili SVG), fallback na neki od podržanih formata (XHTML ili SVG) za slučaj da uređaj ne može prikazati neku datoteku, tip medijske datoteke (formati slike, videa i zvuka), i moguća dodatna svojstva datoteke ako ona sadrži recimo MathML ili JavaScript, ili sadrži vanjski resurs koji je potrebno dobaviti s interneta, i slično.
  • Element spine definira redoslijed prikazivanja dokumenata u knjizi (definira poredak stranica).

Primjer potpune package.opf datoteke (preuzet odavde, pod CC-BY-SA 3.0 licencom):

<?xml version="1.0" encoding="UTF-8"?>
<package xmlns="http://www.idpf.org/2007/opf" prefix="rendition: http://www.idpf.org/vocab/rendition/# cc: http://creativecommons.org/ns#" version="3.0" unique-identifier="bookid" xml:lang="fr" dir="ltr" id="package">
	<metadata xmlns:dc="http://purl.org/dc/elements/1.1/">
<!-- jedinstveni identifikator -->
		<dc:identifier id="bookid">code.gogle.com.epub-sample.sous-le-vent</dc:identifier>
		<meta refines="#bookid" property="identifier-type" scheme="onix:codelist5">01</meta>
<!-- jezik kojim je knjiga pisana (francuski) -->
		<dc:language>fr</dc:language>
<!-- naslov -->
		<dc:title id="title">Sous le vent</dc:title>
		<meta refines="#title" property="title-type">main</meta>
<!-- autor (1) i ilustrator (2) knjige -->
	<!-- 1 -->
		<dc:creator id="creator1">Jean-Bernard Pouy</dc:creator>
		<meta refines="#creator1" property="file-as">Pouy, Jean-Bernard</meta>
		<meta refines="#creator1" property="role" scheme="marc:relators">aut</meta>
		<meta refines="#creator1" property="display-seq">1</meta>
	<!-- 2 -->
		<dc:creator id="creator2">Joe G. Pinelli</dc:creator>
		<meta refines="#creator2" property="file-as">Pinelli, Joe G.</meta>
		<meta refines="#creator2" property="role" scheme="marc:relators">ill</meta>
		<meta refines="#creator2" property="display-seq">2</meta>
<!-- izdavač -->
		<dc:publisher>éditions Jean-Claude Lattès</dc:publisher>
<!-- datum izdavanja -->
		<dc:date>2012-02-01</dc:date>
<!-- autorska prava -->
		<dc:rights xml:lang="en">This work is shared with the public using the Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) license.</dc:rights>
		<link rel="cc:license" href="http://creativecommons.org/licenses/by-sa/3.0/"/>
<!-- vrijeme zadnjeg uređivanja knjige -->
		<meta property="dcterms:modified">2012-08-28T18:00:00Z</meta>
<!-- opcije fiksnog layouta -->
		<meta property="rendition:layout">pre-paginated</meta>
		<meta property="rendition:orientation">portrait</meta>
		<meta property="rendition:spread">auto</meta>
<!-- metapodaci za naslovnicu -->
		<meta name="cover" content="cover" />
	</metadata>
	<manifest>
		<item id="css" href="Style/style.css" media-type="text/css"/>
		<item id="toc" href="Navigation/toc.xhtml" properties="nav" media-type="application/xhtml+xml" />
		
		<item id="id1" href="Font/agaramondpro-regular.otf" media-type="application/vnd.ms-opentype" />
		<item id="id2" href="Font/agaramondpro-bold.otf" media-type="application/vnd.ms-opentype" />
		<item id="id3" href="Font/agaramondpro-italic.otf" media-type="application/vnd.ms-opentype" />

		<item id="cover" href="Image/9782709641609_Couv.jpg" properties="cover-image" media-type="image/jpeg" />

<!-- XHTML datoteke ne trebaju imati media-type, ovdje je stavljen radi primjera -->
<!-- također, sve datoteke koje u sebi imaju svg sliku moraju imati naznačen properties atribut -->
		<item id="ch1" href="Content/pageNum-1.xhtml" properties="svg" media-type="application/xhtml+xml" />
		<item id="ch2" href="Content/pageNum-2.xhtml" properties="svg" media-type="application/xhtml+xml" />
		<item id="ch3" href="Content/pageNum-3.xhtml" properties="svg" media-type="application/xhtml+xml" />
		<item id="ch4" href="Content/pageNum-4.xhtml" properties="svg" media-type="application/xhtml+xml" />
		<item id="ch5" href="Content/pageNum-5.xhtml" properties="svg" media-type="application/xhtml+xml" />
		<item id="ch8" href="Content/pageNum-8.xhtml" properties="svg" media-type="application/xhtml+xml" />
		<item id="ch9" href="Content/pageNum-9.xhtml" properties="svg" media-type="application/xhtml+xml" />
		<item id="img3" href="Image/img-3.jpg" media-type="image/jpeg" />
		<item id="ch10" href="Content/pageNum-10.xhtml" properties="svg" media-type="application/xhtml+xml" />
		<item id="ch11" href="Content/pageNum-11.xhtml" properties="svg" media-type="application/xhtml+xml" />
		<item id="ch12" href="Content/pageNum-12.xhtml" properties="svg" media-type="application/xhtml+xml" />
		<item id="img4" href="Image/img-4.jpg" media-type="image/jpeg" />
		<item id="ch13" href="Content/pageNum-13.xhtml" properties="svg" media-type="application/xhtml+xml" />
		<item id="ch14" href="Content/pageNum-14.xhtml" properties="svg" media-type="application/xhtml+xml" />
		<item id="ch15" href="Content/pageNum-15.xhtml" properties="svg" media-type="application/xhtml+xml" />
	</manifest>
	<spine>
	<!-- idref mora biti jednak kao id tog elementa u manifestu -->
		<itemref idref="toc" properties="page-spread-left"/>
		<itemref idref="ch1" properties="page-spread-right"/>
		<itemref idref="ch2" properties="page-spread-left"/>
		<itemref idref="ch3" properties="page-spread-right"/>
		<itemref idref="ch4" properties="page-spread-left"/>
		<itemref idref="ch5" properties="page-spread-right"/>
		<itemref idref="ch8" properties="page-spread-left"/>
		<itemref idref="ch9" properties="page-spread-right"/>
		<itemref idref="ch10" properties="page-spread-left"/>
		<itemref idref="ch11" properties="page-spread-right"/>
		<itemref idref="ch12" properties="page-spread-left"/>
		<itemref idref="ch13" properties="page-spread-right"/>
		<itemref idref="ch14" properties="page-spread-left"/>
		<itemref idref="ch15" properties="page-spread-right"/>
	</spine>
</package>

Sadržajne XHTML datoteke[uredi | uredi kôd]

Sadržaj same knjige zapisan je u HTML datoteke sa XML zaglavljem (obično jedna datoteka po poglavlju knjige). Primjer početka datoteke:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" 
lang="en" xml:lang="en" epub:prefix="z3998: http://www.daisy.org/z3998/2012/vocab/structure/#">
<!-- običan HTML sadržaj ovdje -->
</html>

XHTML datoteke dopuštaju korištenje HTML5 tagova. Poželjno je uz odvojene cjeline knjige, uz odgovarajuće HTML5 tagove dodati i epub:type atribute koji programu za čitanje pobliže semantički opisuju strukturu, npr: <section epub:type="part">...</section>.

Multimedijske datoteke[uredi | uredi kôd]

Fontovi[uredi | uredi kôd]

Ugradnja fontova u knjige je često problematična jer mnogi e-čitači ne podržavaju ovu funkcionalnost. Također je potrebna redundantnost zbog toga što je moguće da e-čitači između sebe podržavaju različite formate datoteka. Potrebno je i proučiti podržava li licencija za font njegovo korištenje unutar e-knjige. Na kraju treba pripaziti može li font prikazati sve znakove koji se koriste unutar knjige (npr. hrvatske dijakritike).

EPUB3 standard podržava ugradnju TrueType, OpenType, WOFF i WOFF2 fontova.

Koraci za dodavanje fonta u knjigu su sljedeći:

  1. potrebno je dodati font datoteku u epub paket
  2. potrebno je dodati font u manifest (paziti na ispravnost atributa media-type)
  3. potrebno je u CSS datoteku dodati selektor @font-face. Primjer koji odgovara gornjem manifestu:
    @font-face {
    	font-family:AGaramondPro-Regular-0908;
    	font-style:normal;
    	font-weight:normal;
    	src:url(../Font/agaramondpro-regular.otf);
    }
    @font-face {
    	font-family:AGaramondPro-Bold-0656;
    	font-style:normal;
    	font-weight:normal;
    	src:url(../Font/agaramondpro-bold.otf);
    }
    @font-face {
    	font-family:AGaramondPro-Italic-0855;
    	font-style:normal;
    	font-weight:normal;
    	src:url(../Font/agaramondpro-italic.otf);
    }
    @font-face {
    	font-family:Garamond-0662;
    	font-style:normal;
    	font-weight:normal;
    	src:url(../Font/agaramondpro-regular.otf);
    }
    

Izvori[uredi | uredi kôd]

  1. Older Versions of EPUB | International Digital Publishing Forum (engleski). Pristupljeno 4. srpnja 2020. journal zahtijeva |journal= (pomoć)

Vanjske poveznice[uredi | uredi kôd]

Nedovršeni članak EPUB koji govori o računarstvu treba dopuniti. Dopunite ga prema pravilima Wikipedije.