logo
small logo
  • Продукты
  • Купить
  • Поддержка
  • Статьи
  • Клиентская панель Поддержка
  • Главная
  • /
  • Статьи
  • /
  • Создание файла в Open Document Text (ODT) из Delphi / C++Builder / Lazarus
  • Как в Delphi / Lazarus / С++ Builder получить отчет из нескольких Баз Данных

    11 декабря 2020 г.

    Скромно отмечу, что FastReport VCL является одним из самых удобных компонентов генерации отчетности любой сложности.

    Подробнее
  • Как создать штрих-коды CODE 39 и CODE 39 Extended с помощью Delphi / Lazarus

    23 октября 2020 г.

    CODE 39 - это штрих-код, разработанный Intermec Corporation в 1975 году, который может содержать в

    Подробнее
  • Создаём штрих-код ITF в Delphi / Lazarus / С++ Builder

    11 ноября 2020 г.

    Немного теории о штрих-кодах Сложно представить нашу жизнь без штрих-кодов особенно сейчас, когда мы их встречаем

    Подробнее
  • Как создать ZPL в Delphi / C++Builder / Lazarus

    22 декабря 2020 г.

    Что такое ZPL? Вообще ZPL расшифровывается как язык программирования зебр (Zebra Programming Language). Есть возможность командами

    Подробнее
  • Web-репорты в Lazarus под Linux

    15 декабря 2020 г.

    До недавнего времени задача генерации отчётов через Web из приложения, написанного на Lazarus, была, скажем

    Подробнее

Создание файла в Open Document Text (ODT) из Delphi / C++Builder / Lazarus

6 августа 2020 г.

Расширение файла ODT используется для текстовых файлов Open Document, которые чаще всего создаются с помощью бесплатного текстового процессора OpenOffice или LibreOffice. Этот формат документов основан на языке разметки XML и поэтому легко конвертируется.

Чтобы понять, что же это за формат, достаточно встретить открытый стандарт OpenDocument Format (созданный сообществом OASIS), непосредственно связанный с ODT. Так как ODF может хранить и выполнять обмен офисными документами, сюда же относится и расширение файла Open Document Text, содержащее различные отчёты, заметки, книги и так далее. Подробнее о формате ODF мы рассказали в этой статье.

Файл расширением ODT получил особую популярность не так давно, в 2014 году, когда веб-приложения Google Docs вместе с Sheets и Slides обзавелись поддержкой стандарта ODF, соответственно у пользователей появилась возможность сохранять текстовые документы в формате .odt и теперь само расширение файла становится всё более распространенным. Открывать файлы с этим расширением весьма просто, а благодаря языку разметки XML можно легко конвертировать в другие форматы, используя соответствующие утилиты.

Корректно открыть файл, имеющий расширение ODT, возможно используя такие офисные пакеты, как Libre Office, StarOffice, OpenOffice, позволяющие беспрепятственно конвертировать и изменять файлы этого формата. Если же пользователь пытается открыть ODT с применением приложения Microsoft Office, то ему потребуется установка дополнительного плагина из серии ODF Sun Plugin for MS Office. Многие из владельцев ПК выполняют открытие ODT файлов при помощи Corel WordPerfect Office, ещё есть NeoOffice, Lotus Symphony. Выбор, на мой взгляд, обширный! Кстати, отечественный офисный пакет для целей импортозамещения “МойОфис” также использует этот стандарт для своих документов.

Сохраняем в ODT формат из Delphi с помощью FastReport

Почему FastReport? Потому как он предназначен именно для формирования документов! Прежде всего, у вас уже должен быть собран проект с внедрённым FastReport c компонентом “экспорт в Open Documents Text” и сформирован отчёт (по созданию отчётов есть отдельная статья). Запустили, нажимаем в предпросмотре “Сохранить” и вызываем экспорт из предпросмотра (в конце статьи есть способ сохранить в ODT сразу из кода), должно появиться такое окошко настроек:

Средства FastReport помогают выбрать, какие страницы нашего документа отправить в Excel, диапазон или только определенные страницы.

Настройки экспорта – большее визуальное соответствие с начальным вариантом (WYSIWYG), page breaks - сохраняются разрывы страниц, continuous - непрерывный документ с пропуском промежуточных заголовков и подвалов страниц, background - экспорт фоновых графических объектов, присвоенных странице отчета.

Традиционно можно указать, куда мы хотим отправить файл. Экспортировать его в память компьютера, на электронную почту, в облако или же в FTP.

Открыть после экспорта – результирующий файл будет открыт сразу же после экспорта программой, которая стоит по умолчанию для открытия ODS -документов.

Код для сохранения в Open Documents Text сразу из Delphi / Lazarus

Сохранение в ODT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
procedure TForm1.Button2Click(Sender: TObject);
begin
 {Формируем отчёт. Перед экспортом отчёт необходимо обязательно сформировать}
 frxReport1.PrepareReport();
 {Устанавливаем диапазон экспортируемых страниц. По умолчанию экспортируются все страницы сформированного отчёта}
 frxODTExport1.PageNumbers := '2-3';
 {Устанавливаем, нужно ли формировать непрерывный документ}
 frxODTExport1.SingleSheet := False;
 {Устанавливаем, экспортировать ли разрывы страниц в пределах листа книги,}
 {чтобы страницы при печати соответствовали страницам сформированного отчёта}
 frxODTExport1.ExportPageBreaks := True;
 {Устанавливаем WYSIWYG}
 frxODTExport1.Wysiwyg := True;
 {Устанавливаем, нужно ли экспортировать фоновое изображение страницы}
 frxODTExport1.Background := True;
 {Устанавливаем, нужно ли открывать результирующий файл после экспорта}
 frxODTExport1.OpenAfterExport := False;
 {Устанавливаем, нужно ли отображать прогресс экспорта(показывать, какая страница в данный момент экспортируется)}
 frxODTExport1.ShowProgress := False;
 {Устанавливаем, нужно ли отображать окно диалога с настройками фильтра экспорта}
 frxODTExport1.ShowDialog := False;
 {Устанавливаем имя результирующего файла.}
 {Обратите внимание на то, что если не установить имя файла и отключить показ диалогового окна фильтра экспорта,}
 {то всё равно будет отображён диалог выбора имени файла}
 frxODTExport1.FileName := 'C:\Output\test.odt';
 {Экспортируем отчёт}
 frxReport1.Export(frxODTExport1);
end;

Сравнение Microsoft Word 2007 XML и Open Document Text

А всё же, что лучше использовать? Разберёмся с их основой. «Начинка» в данных форматах одинаковая, а именно язык разметки XML. Он является технологией, разработанной для управления структурированными данными и отображения этих данных в виде удобочитаемого текстового файла. Язык XML соответствует отраслевым стандартам и может быть обработан многими базами данных и приложениями. С помощью XML многие разработчики могут создавать собственные настроенные теги, структуры данных и схемы. Данный язык существенно облегчает определение, передачу, проверку и интерпретацию данных в различных базах данных, приложениях и организациях. Это значит, что оба файла представляют собой переименованный в .docx/.odt zip-архив.

Поговорим о возможностях и функционале. Прикрепление комментариев к определенным частям документа делает отзыв более четким, для этого есть функция «Примечания». Когда вы сохраняете документ в формате ODT и снова открываете его в Word 2007, примечания о группе слов становятся одной точкой. Как правило, эта точка отображается в конце группы слов. Таблицы в примечаниях не поддерживаются. Содержимое таблицы сохраняется в примечании, но структура теряется.

Говоря о защите документов и данных, следует вспомнить о функциях «Защита документа» и «Управление правами на доступ к данным (IRM)». При сохранении файла Word в формате ODT эти функции удаляются, открыть такие файлы невозможно.

А вот всеми любимая функция исправления, спасшая не одну жизнь, в ODT работать не будет, вернее, будут приняты все предложенные изменения и ваша информация может нехило пострадать. Преобразуются в обычный текст списки литературы, заголовки, а сноски просто исчезнут.

«Рамки» поддерживаются частично. При сохранении документа Word 2007 в формате ODT рамки преобразуются в текстовые поля, привязки к некоторым областям полей не поддерживаются. При наличии неподдерживаемого содержимого удаляется рамка, но не само содержимое. К нему относятся таблицы, автофигуры, текстовые поля, рамки и графические элементы SmartArt.

При сохранении документа Word 2007 в формате ODT могут теряться свойства некоторых непрерывных разрывов раздела, такие как верхние и нижние поля, колонтитулы, границы и нумерация строк.

«Таблицы» поддерживается частично. В ODT таблицы с более чем 64 столбцами не поддерживаются, а форматирование темы преобразуется в форматирование уровня ячейки. Вдобавок текстовые поля не могут быть вложенными. Ориентация текста в ячейках таблицы тоже не поддерживается.

Если говорить про графические элементы, то что-то работает в любом формате, а что-то вовсе не поддерживается. Группировка некоторых объектов в Word невозможна, поэтому при открытии файла OpenDocument объекты разгруппировываются. Это относится ко всем объектам, сгруппированным с диаграммой, а также к рисункам, сгруппированным с фигурой, надписью или объектом OLE. Может поменяться видимость объектов. После сохранения файла в формате ODT и его повторного открытия в приложении Word невидимые объекты становятся видимыми.

Перечислять все функции можно до бесконечности, я лишь выделил самые интересные. Подробную таблицу-сравнение можно найти тут.

Если говорить о весе файлов, то особо разницы нет. Вордовский документ весит чуть больше из-за  поддержки шифрования, ODT файл это не поддерживает. За основу взяли вот этих прекрасных рыбок. В данном документе много текста, табличные данные и 30 фотографий. Скриншоты для наглядности:

Подведём итог. Оба формата современные, открытые (что немаловажно), поддерживаются многими текстовыми редакторами. преимущество ODT - поддержка опенсорс-коммьюнити, сообществом OASIS, в то время как DOCX одна Microsoft, который сейчас таки развернулся в сторону Open Source инициатив. Выбор за вами, и вашим заказчиком - в любом случае можете рассчитывать на формирование качественных документов с поддержкой стандартов от FastReport. 

О продукте Скачать Купить
avatar
Michael Philippenko
Генеральный директор
Fast Reports Team: Michae Philippenko - VP at Fast Reports
VCL Lazarus FastReport 6 Delphi ODT

Добавить комментарий
logo
  • +7(800)551-75-80
  • info@fastreport.ru
  • Ростов-на-Дону, Россия, 344082, ул.Обороны 24, офис 311
  • Купить
  • Загрузить
  • Документация
  • Отзывы
  • Как деинсталировать
  • Онлайн поддержка
  • FAQ
  • Видео уроки
  • Форум
  • Статьи
  • Наши Новости
  • Пресса о нас
  • Реселлеры
  • Нестандартное лицензирование
  • ВУЗам
  • Карьера
  • Контакты

© 1998-2022 ООО «Фаст Репортс»

  • Согласие с обработкой персональных данных
  • Не является публичной офертой