Как сделать таблицу в rtf формате

Добавил пользователь Владимир З.
Обновлено: 04.10.2024

При практической эксплуатации информационных систем уровня предприятия, особенно при недостаточно развитой системе подготовки отчетов, часто бывает необходимо заполнить разного рода бланки (например, заявления, справки, заключения и т.д.) или подготовить отчеты для распечатки на лазерном принтере, примерно в таком виде:

Пример rtf-бланка
Заголовок документа: PARAM1

Строка 1 Значение PARAM2
Строка 2 Значение PARAM3

Подпись под документом: PARAM4

Рис.1 Пример бланка в виде rtf-файла, переменные описаны в виде полей типа “QUOTE” – PARAM1,PARAM2,PARAM3,PARAM4

При заполнении бланка данными, переменные PARAM1. 4 должны будут замениться на свои значения.
При этом форма бланка обычно остается постоянной и неизменной, а конкретные поля в бланке необходимо “подгружать” из таблиц баз данных, файлов с данными и т.д. В терминах языка Perl – значениями хеша, ключи которого соответствуют названиям переменных:
(PARAM1=>”ПАРАМЕТР1”, PARAM1=>”ПАРАМЕТР2”, PARAM1=>”ПАРАМЕТР3”,
PARAM1=>”ПАРАМЕТР4”)
В результате, готовый к печати на лазерном принтере бланк, будет иметь примерно такой вид:

Пример rtf-бланка
Заголовок документа: ПАРАМЕТР1

Строка 1 Значение ПАРАМЕТР2
Строка 2 Значение ПАРАМЕТР3

Подпись под документом: ПАРАМЕТР4

Рис.2 Результат заполнения rtf-бланка (рис.1) заменой полей типа “QUOTE” на значения соответствующих ключей хеша.

При этом возникает необходимость выполнить несколько трудносовместимых требований -разработка и исправление бланка должно быть доступно конечному пользователю (бухгалтеру, сотруднику отдела кадров, менеджеру и т.д.) и позволять произвольно расставлять поля для слияния данных, а подготовка процедуры извлечения данных — программисту или сотруднику службы поддержки, то есть, необходимо отделить представление данных от процедуры извлечения данных.

Можно, разумеется, сказать, что подобная технология слияния данных давно используется в MS Word, например, но она имеет серьезный недостаток: процедура слияния довольно сложна для неподготовленного пользователя (необходимо подготовить файл с данными, выбрать бланк, запустить процесс слияния, разобраться с результатами).

Другой вариант – использование бланков в форме XML-файлов и заполнение их в соответствии с правилами подстановки, описанными в XSLT-таблицах,- имеет тот недостаток, что неподготовленному пользователю, привыкшему работать с MS Word будет трудно создавать и редактировать бланки XML-файлов. Какой-либо общераспространенный инструмент для работы с XML, сравнимый по популярности с MS Word трудно найти.

Выходом, разработанным и апробированным уже в течение ряда лет при работе в крупной банковской информационной системе стал вариант автоматической подстановки данных в rtf-бланки отчетов с использованием простого скрипта (в данном случае использовался perl, но возможно использование любого языка, поддерживающего обработку регулярных выражений), осуществляющего поиск в текстовом rtf-документе описателей полей типа “QUOTE” и замену символических названий этих полей на значение переменной с аналогичным именем, извлеченной из таблицы БД, файла данных (в терминах perl – из хеша по ключу, соответствующему символическому названию поля).

Пример скрипта c комментариями, выполняющего подобную подстановку, приведен в конце постинга.

Скорее всего, даже краткого пояснения принципа работы скрипта не требуется (готовый rtf-бланк с выполненными подстановками значений переменных выводится во временный файл temp.rtf, подготовленный к отправке на принтер), единственная представляющая в нем интерес часть – регулярное выражение:

осуществляющее поиск в rtf-файле описателей полей типа “QUOTE” и замену их соответствующим значением из хеша %p, возвращаемым функцией dosubst. Работоспособность этого регулярного выражения проверена на rtf-файлах, подготавливаемых всеми пакетами MS Office – от Office 95 до Office 2010.

Конечно, данный способ имеет некоторые недостатки, например, довольно трудно осуществлять вывод в rtf-бланк табличных значений, особенно для длинных таблиц, (их, например, можно выводить сразу в готовом виде, строя в perl-скрипте), но имеет и серьезные плюсы:

— разработку бланка и расстановку в нем полей для размещения данных может выполнять обычный пользователь, знакомый с редактором Word (умеющий вставлять в текст поля типа “QUOTE”), сообщающий затем список названий полей данных и что в них желательно помещать при подстановке программисту или специалисту службы поддержки;
— разработку скрипта, выгружающего данные, осуществляет программист, а в дальнейшем, при необходимости косметических изменений бланка (шрифт, отступы, логотип и т.д.), программиста привлекать необходимости нет, с этой работой легко справляется или служба поддержки, или сам пользователь – автор бланка.

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

Данный формат был определен фирмой Microsoft как стандартный формат для обмена текстовыми документами. Следовательно, по назначению этот формат подобен SYLK-формату для электронных таблиц. RTF поддерживается многими продуктами фирмы Microsoft. Так, например, начиная с версии 2.0, он введен в Windows в качестве Clipboard-формата, благодаря чему возможен обмен данными между различными прикладными программами Windows. Кроме того, RT-формат поддерживается программами WORD для Macintosh, начиная с версии 3.X, и WORD для PC, начиная с версии 4. X.

В RTF для обмена документами используются только представимые символами коды из ASCII-, MAC- и PC-символьного набора. Кроме текста, файл в RT-формате в читаемой форме содержит команды управления.

Документ состоит преимущественно из команд управления настройки программы чтения файлов в RTF-формате. Эти команды можно разделить на управляющие слова (control words) и управляющие символы (control symbols).

Управляющее слово представляет собой последовательность символов с разделителем (delimiter) в конце:

Перед управляющим словом вводится обратная косая черта "\" (backslash). В качестве разделяющих могут использоваться следующие символы:

  • Пробел (space), причем этот символ относится к управляющему слову;
  • Цифра или знак "-". После этих символов должен следовать параметр с разделителем. В качестве разделителя может быть использован пробел или другие символы, кроме цифр и букв;
  • Все символы, отличные от цифр и букв. Эти символы не относятся к управляющему слову.

В RT-формате для задания управляющей последовательности используются буквы от "А" до "Z" и от "а" до "z", а также цифры от "0" до "9". Национальные символы к управляющей информации не относятся.

В качестве, управляющих символов используются отдельные буквы. Перед каждым управляющим символом вводится обратная косая черта "\":

В настоящее время определены только некоторые из этих символов. Поэтому при чтении неизвестные символы могут быть пропущены.

В RT-формате существует возможность объединять отдельные последовательности в группы при помощи скобок:

Такие группы создаются, например, при описании сносок, колонтитулов и т.п. Если необходимо разместить символы "\", "" внутри обычного текста, то перед ними надлежит поставить обратную косую черту:

Это позволяет программе, читающей RTF-последовательность, распознать, что символ не следует интерпретировать как управляющий.

В RT-формате используются также некоторые символьные коды для управления печатью

КодЗначение
09НТабулятор
0АНСимвол CR
0СНСимвол LF

Символы CR и LF, расположенные внутри текста, будут пропущены. Microsoft использует эти символы для большей наглядности при представлении RTF-файла. Внутри управляющих слов символы CR и LF могут иметь особое значение, подробнее об этом будет сказано при описании команд.

Специальные управляющие слова (special control words)

В RTF имеются управляющие слова специального назначения. Рассмотрим кратко эти слова и их назначение.

Управляющее слово change page number выводит текущий номер страницы.

Управляющее слово change footnote активизирует автоматическую нумерацию сносок.

С помощью change date можно вывести текущую дату.

С помощью change time можно вывести текущее время.

Ссылка на примечание (текст следует в группе).

Свидетельствует об изменении линии, отделяющей сноски от текста.

С помощью данной последовательности вводится текст формулы.

Обозначает подпункт индекса.

Текст может быть пропущен при чтении RTF-формата.

Задает жесткий (неразрываемый) пробел между двумя словами, т.е. в этой позиции предложение не может быть разделено при переносе на следующую строку.

Символ обозначает мягкий перенос (nonrequired hyphen).

Символ обозначает неразрываемый перенос (nonbreaking hyphen), на месте которого слово не может быть разделено.

Последовательность позволяет прямой ввод в тексте шестнадцатеричных чисел. Они задаются вместо символов hh.

Данная последовательность задает переход на новую страницу.

Эта последовательность вызывает переход на новую строку в тексте.

С помощью данной последовательности в тексте отмечается конец абзаца. Последовательность \раr может заменяться последовательностью \10 или \13. При этом \10 соответствует ASCII-символу с кодом 10 (carriage return). Непосредственно ввести ASCII-код 10 (CR) нельзя, т.к. он игнорируется программой чтения.

Эта последовательность обозначает конец текстового фрагмента или текстового абзаца.

Данная последовательность заменяет табулятор. Можно также непосредственно задавать ASCII-код 09Н.

Конец таблицы (столбец).

Конец таблицы (строка).

Операторы настройки (destination control words)

С помощью описанных ниже управляющих слов можно произвести основную настройку программы чтения RTF. Они могут встречаться только в начале документа или в начале группы. Все операторы вместе с параметрами должны быть заключены в скобки, например:

Ниже описан формат некоторых операторов.

Задает метку начала файла. В качестве параметра программа, при помощи которой создается файл, может указывать номер версии. Например:

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

Установка вида кодировки для сохраняемого текста осуществляется с помощью следующих операторов:

  • \ansi: текст хранится в стандартном ASCII-формате. Этот формат используется, например, в Windows.
  • \mac:. текст хранится в кодировке Macintosh
  • \рс: для вывода текста используется кодировка символов IBM-PC.
  • \рса: IBM-PC Code Page 850 (модель PS\2).

Для передачи текстов между различными системами должна использоваться кодировка \ansi.

\colortbl

Windows и другие программы пользуются палитрами для определения используемых цветов. Чаще всего палитра состоит из 16 различных цветов, получаемых путем комбинации основных цветов — красного, зеленого и синего. Команда \colortbl позволяет изменить отдельные определения в палитре. Для каждого цвета в таблице указывается величина красной, зеленой и синей составляющей. Каждый цвет описывается тремя параметрами:

Вместо 000 указывается величина доли цвета в диапазоне от 0 до 255. Пример: в таблице, состоящей из 16 цветов, должны быть заново определены цвета 0-й и 2-й. Для переопределения цветов может быть задана следующая последовательность:

Определение цвета завершается точкой с запятой. Поскольку 1-й цвет остается без изменений, в последовательности два символа ";" следуют один за другим. Последовательность завершается закрывающей скобкой.

Оператор \cfn определяет цвет фона (при стандартной настройке n=0), а оператор \cbn - цвет символа (при стандартной настройке n=0).

\fonttbl

Данный оператор используется для построения таблицы шрифтов и соотносит имя шрифта (группы шрифтов) с номером шрифта. При определении шрифта можно использовать следующие операторы:

  • \fnil: имя группы шрифтов неизвестно. При выводе должен использоваться стандартный шрифт.
  • \froman: должны использоваться шрифты группы Roman (например, Times Roman)
  • \fswiss: этот оператор предписывает использование шрифтов из группы Swiss (Helvetica, Swiss и т.д.)
  • \fmodern: могут использоваться шрифты Pica, Elite и Courier.
  • \fscript: используются курсивные шрифты группы Script.
  • \fdecor: при указании этого оператора шрифты должны выбираться из группы Decor (Old English и т.д.).
  • \ftech: выбор группы шрифтов с техническими и математическими символами (SYMBOL и т.д.).

Команда для создания группы шрифтов может состоять из таких операторов:

После ключевого слова \fonttbl следует первый номер шрифта \f0. Далее идет определение группы шрифтов. Здесь после номера 0 указано \fnil, т.е. имя группы неизвестно. Следующий параметр обозначает имя выбираемого шрифта (например, roman h). Указание default говорит считывающей программе о том, что следует использовать стандартный шрифт. После имени шрифта стоит точка с запятой. В приведенном примере определены только шрифты с номерами 1 и 2. Вся последовательность может быть объединена фигурными скобками в группу.

Таблица шрифтов должна быть заполнена значениями до того, как встретится оператор \stylesheet или текст. Стандартный шрифт вводится оператором \deffn.

\stylesheet

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

  • \sbasedon000: вместо символов 000 указывается номер вида шрифта, который используется в качестве текущего.
  • \snext000: назначает номер следующего вида шрифта (style), который - станет текущим.

Оператор может иметь, например, следующий вид:

Шрифты нумеруются числами от 0 до n (\s0. ). В первой строке стилю абзаца 0 (\s0) предписывается имя Normal. Вывод текста выполняется шрифтом 3 (\f3), размером 10 пунктов (\fs20). Параметр \qj говорит о том, что надпись должна выравниваться по формату. Вторая строка определяет стиль шрифта 1, который получает имя Heading Level 3. Шрифт имеет размер 15 пунктов, жирное начертание (\Ь = bold) и при выводе надпись центрируется (\qc).

Этот оператор используется при описании рисунка в формате битовой карты (bitmap). Следующие параметры содержат описание рисунка в виде шестнадцатеричных значений. Параметры могут быть выборочно использованы для определения геометрии рисунка или его формата:

У текстового редактора WordPad есть одна особенность – в нем нельзя создавать таблицы. Впрочем, таблицу можно импортировать с других программ, например с MS Word или MS Excel.

Содержание статьи

Как сделать таблицу в WordPad

  • Как сделать таблицу в WordPad
  • Как создавать таблицы в Word
  • Как сделать таблицу в таблице

Текстовый редактор WordPad

WordPad – это текстовый редактор, который по умолчанию установлен на всех операционных системах Windows. В отличие от блокнота, данная программа умеет не только редактировать, но и форматировать текст. Кроме того, WordPad поддерживает графические объекты, а также умеет импортировать объекты из других программ. Но по сравнению с другими текстовыми редакторами это довольно простое приложение с ограниченными возможностями.

Создание таблицы в WordPad

В открывшемся окне программы Excel можно создать таблицу необходимых размеров, заполнить ее данными, здесь же отформатировать и т.д. При этом все изменения в Excel будут мгновенно отображаться в текстовом редакторе WordPad – нарисуете таблицу, она тут же отобразится, напишете одно слово – и оно сразу же появится.

Таблица будет сохранена как рисунок, и ее можно будет передвигать по документу в любое место. А если возникнет необходимость отредактировать некоторые данные, достаточно щелкнуть два раза по таблице и снова откроется окно MS Excel, где можно внести изменения.

Файл с расширением .RTF – это файл Rich Text Format. Он отличается от простого текстового файла тем, что может содержать форматирование, например, жирный шрифт и курсив, а также различные шрифты, размеры и изображения.

RTF-файлы полезны, потому что многие программы их поддерживают. Это означает, что вы можете создать файл RTF в одной программе в конкретной операционной системе, такой как macOS, а затем открыть тот же файл RTF в Windows или Linux, и он будет выглядеть, в основном, одинаково.

Как открыть файл RTF

Самый простой способ открыть файл RTF в Windows – это использовать WordPad, так как он предварительно установлен. Однако, другие текстовые редакторы и текстовые процессоры также прекрасно справятся с задачей, например, LibreOffice, OpenOffice, AbleWord, Jarte, AbiWord, WPS Office и SoftMaker FreeOffice.

Вид файлов формата RTF в проводнике Windows

Zoho Docs и Google Docs – это два способа открывать и редактировать файлы RTF онлайн.

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

Некоторые из этих редакторов Windows RTF также работают с Linux и Mac. Если вы работаете в macOS, вы также можете использовать Apple TextEdit или Apple Pages, чтобы открыть файл RTF.

Как конвертировать файл RTF

Самый быстрый способ конвертировать файлы RTF – использовать онлайн-конвертер RTF, например, FileZigZag. Вы можете сохранить RTF как файл DOC, PDF, TXT, ODT или HTML. Другой способ конвертировать RTF в PDF онлайн или в PNG, PCX или PS – это использовать Zamzar.

Конвертация файла RTF в другие форматы с помощью сервиса Zamzar

Doxillion – это ещё один бесплатный конвертер файлов документов, который может конвертировать RTF в DOCX и множество других форматов документов.

Больше информации о формате RTF

Формат RTF был впервые использован в 1987 году, но в 2008 году Microsoft перестала его обновлять. С тех пор в этот формат были внесены некоторые изменения. Это определяет, будет ли один редактор документов отображать файл RTF таким же образом, как и другой, который его создал, зависит от того, какая версия RTF используется.

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

Файлы RTF когда-то использовались для файлов справки Windows, но с тех пор были заменены файлами справки Microsoft Compiled HTML, использующими расширение файла CHM.

Первая версия RTF была выпущена в 1987 году и использовалась MS Word 3. С 1989 по 2006 годы были выпущены версии 1.1-1.91, причем последняя версия RTF поддерживала такие вещи, как разметка XML, пользовательские теги XML, защита паролем и математические элементы.

Поскольку формат RTF основан на XML, а не двоичен, вы можете фактически прочитать содержимое, открыв файл в текстовом редакторе, таком как Блокнот.

RTF-файлы не поддерживают макросы, но это не означает, что файлы .RTF являются макробезопасными. Например, файл MS Word, содержащий макросы, может быть переименован, чтобы иметь расширение .RTF, чтобы он выглядел безопасным, но затем при открытии в MS Word макросы всё ещё могут работать нормально, поскольку это, на самом деле, не RTF файл.

Читайте также: