2015-08-19 3 views
2

Мне нужно программно идентифицировать макет файла ePub. Файл ePub может быть либо в Fixed Layout, либо в Reflowable Layout.Как программно разграничить макет epub fix и reflowable

Я попытался использовать Microsoft.WindowsAPICodePack с Microsoft.WindowsAPICodePack.Shell, чтобы вытащить метаданные файла ePub.

Однако, я не могу определить, какое свойство может сказать мне, что такое макет.

Есть ли скрытая собственность в метаданных, на которых следует сосредоточиться?

-Alan-

+0

Какую библиотеку вы используете для epub? вы строите приложение для мобильных устройств? – null1941

ответ

3

Вы должны искать <meta property="rendition:layout"> элемента в <metadata> части ОПФ файла:

  1. <meta property="rendition:layout">reflowable</meta> указывает reflowable EPUB
  2. <meta property="rendition:layout">pre-paginated</meta> указывает фиксированный макет EPUB

Спецификация: http://www.idpf.org/epub/301/spec/epub-publications.html#meta-properties-rendering

Примечание: EPUB 3 позволяет гибридные EPUB (т. Е. Смешивать reflowable и pre-paginated spine items), поэтому свойство может быть прикреплено к элементам позвоночника. См. rendition:layout* свойства: http://www.idpf.org/epub/301/spec/epub-publications.html#sec-itemref-property-values

+0

К сожалению, большая часть нашего файла OPF не имеет

+0

Per http://www.idpf.org/epub/301/spec/epub-publications.html#fxl-property-layout- использования, вы должны затем предположить, что EPUB reflowable: «Значение reflowable по умолчанию должно быть принято EPUB Reading Systems в качестве глобального значения, если в метаданных не встречается метаэлемент, несущий это свойство». –

+0

Если вам нужна дополнительная эвристика, так как FXL требует указать мета-элемент viewport в заголовке файлов XHTML, вы можете его найти. Если вы его не найдете, EPUB будет reflowable, иначе FXL. (См .: http://www.idpf.org/epub/301/spec/epub-publications.html#fxl-property-layout-values) –