Version 4 (modified by 10 years ago) ( diff ) | ,
---|
Open Document Format & Cloud Computing
Реализовать WYSIWYG редактор в HTML/CSS/JS вполне реалистично. На практике существуют подобные проекты, например WebODF.
Реализовывать печать документов предпочтительнее через PDF, нежели сресдтвами браузера, поскольку:
- управление печатью из JS минимально;
- браузер может добвалять свои заголовки и подписи и их невозможно отключить программно;
- пользователь может выставить масштаб печати и всё пойдёт наперекосяк.
Архитектура
В виду вышеперечисленного видится следующая архитектура системы:
- ядро для работы с документами ODF, позволяющее читать, записывать, создавать и модифицировать документы;
- модуль для web-сервера, выполняющий взаимодействие с клиентом (браузером) для редактирования документа. Взаимодействие производиться с использованием формата JSON; скрипт на стороне клиента выполняет формирование HTML/CSS и обработку ввода пользователя; он же передаёт изменения на сторону сервера, где модифицируется основной документ. Здесь же можно предусмотреть и популярную функцию одновременного интерактивного редактирования документа;
- модуль печати в PDF, выполняющий преобразование документа из внутреннего представления в формат PDF.
Для внутреннего представления можно использовать модель, аналогичную DOM; т.е. представлять документ как дерево узлов, каждый из которых соответствует элементу XML.
Замечания
Стили
Стиль в общем случае имеет следующие поля:
style:auto-update | |
style:class | |
style:data-style-name | |
style:default-outline-level | |
style:display-name | |
style:family | |
style:list-level | |
style:list-style-name | |
style:master-page-name | |
style:name | |
style:next-style-name | |
style:parent-style-name | |
style:percentage-data-style-name | |
<style:chart-properties> | |
<style:drawing-page-properties> | |
<style:graphic-properties> | |
<style:map> | |
<style:paragraph-properties> | |
<style:ruby-properties> | |
<style:section-properties> | |
<style:table-cell-properties> | |
<style:table-column-properties> | |
<style:table-properties> | |
<style:table-row-properties> | |
<style:text-properties> |
Элементы, допускающие текстовую информацию
<text:h> | |
<text:p> | |
<text:span> | |
<text:a> | |
<text:meta> | |
<text:ruby-base> | |
<text:meta-field> | |
<office:script> | arbitrary child elements are permitted |
Note:
See TracWiki
for help on using the wiki.