2013-05-28 6 views
4

Я разработал веб-приложение для чтения электронных папок, я хочу добавить к нему функцию комментирования, такую ​​как функция adobe PDF reader commenting, чтобы комментарии сохранялись в пределах e pub, если я открою этот e pub в другом электронном читателе, я мог бы видеть комментарии.Как создать аннотацию epub с возможностью сохранения в Epub

ответ

4

Изменение XHTML

Первый appoach является переписать XHTML, чтобы включить комментарий, и восстановить EPUB. Вероятно, имеет смысл использовать элемент <aside> для заметок, а также атрибут epub:type='footnote'. Если вы затем добавите ссылку на страницу где-нибудь (например, вокруг текста, к которому относится комментарий), с атрибутом epub:type='noteref', тогда iBooks подойдет правильно. См. http://www.pigsgourdsandwikis.com/2012/05/creating-pop-up-footnotes-in-epub-3-and.html.

<p>This sentence contains a 
    <a href="#note" epub:type="noteref">commented phrase</a>. 
</p> 
<aside id="note" epub:type="footnote">This is the comment.</aside> 

Однако стандартная разметка отсутствует, что будет работать во всех читателях электронных книг. Лучшее, что вы можете сделать, это добавить скрипт, который выдает соответствующую заметку, но это, очевидно, будет работать только в сценариях EPUB3, которые читаются на читателе, который запускает скрипты.

Использование УФИ в отдельном файле

Возможной альтернативой, которая избавляет от необходимости переписывать файлы XHTML, чтобы держать комментарии в отдельном файле, и связать их с соответствующим текстом, используя Canonical идентификаторы фрагмента (http://www.idpf.org/epub/linking/cfi/). Но, конечно, вам все равно понадобится сценарий, чтобы все работало. Файл может выглядеть следующим образом:

<comments> 
    <comment> 
     <cfi>/6/4[chap01ref]!/4[body01]/10[para05]/3:10</cfi> 
     <text>This is the comment.</text> 
    </comment> 
</comments> 

Вы можете найти реализацию прототипа УФИ на https://code.google.com/p/epub-revision/source/browse/trunk/src/samples/cfi/epubcfi.js, но вам все равно придется писать клей вокруг него.

+0

Спасибо @torazaburo –

+0

может дать мне пример кода, чтобы я мог продолжить, и вы также проголосуете мой вопрос вверх Advancely Спасибо –

+1

Нет, я не могу (дайте вам образец кода). Разве это не то, что вам платят за развитие? –