Рамка, яка не злітає: як автоматизувати основний напис в текстовому документі TechEditor

Рамка, яка не злітає: як автоматизувати основний напис в текстовому документі TechEditor

Рейтинг користувача: 5 / 5

Активна зіркаАктивна зіркаАктивна зіркаАктивна зіркаАктивна зірка
 

Якщо зображення, яке ви бачите нижче, викликає у вас відчуття дежавю — вітаю, ви не помилилися адресою. В цьому матеріалі ми розглянемо, як раз і назавжди позбутися проблем з рамками, основними написами та іншою графічною інформацією в текстових документах.

Привіт! Мене звати Віталій, а ви на ресурсі для інженерів Dystlab.

Рамка, яка не злазить | Dystlab Store

Рамка, основний напис, штамп

Оформлення документації в сфері науки і техніки підпорядковується правилам, озвученим зокрема в Національному стандарті України ДСТУ Б А.2.4-4:2009 "Основні вимоги до проектної та робочої документації". Згідно пункту 6.27 цього ДСТУ,

кожен аркуш графічного та текстового документа повинен мати основний напис та додаткові графи до нього

Основний напис — таблиця, яка містить мінімально необхідну інформацію про проект. В ній вказується, хто є безпосереднім виконавцем проекту, хто здійснює нормоконтроль, хто затверджує проект та ін. Додаткові графи — також таблиці, які додаються за необхідності і можуть бути орієнтовані вертикально.

В народі, основний напис спрощено називають штампом. Це не зовсім коректно, але іноді ми також будемо дозволяти собі цей термін.

Форми основних написів

Існує кілька варіантів основного напису і додаткових граф.

Титульний аркуш містить розгорнуту інформацію про проект. Якщо діяти за формою 5 згаданого ДСТУ, то основний напис тут має вигляд найбільшої таблиці. Наступні аркуші оформлюються "спокійніше" і відрізняються від титульного значно меншим штампом (форма 6):

Основний напис, форма 5 ДСТУ | Dystlab Store

В чому проблема зі штампом?

Якщо ви працюєте в CAD або BIM-програмі, основний напис накреслити елементарно. Натомість, створення цього, здавалось би, простого елемента в текстовому редакторі може перетворити життя інженера на пекло.

Секції аркушу

Основна проблема полягає в тому, що більшість офісних пакетів мають дуже обмежений функціонал для роботи з графікою. Як правило, аркуш в MS Word, WPS Office, Google Docs складається з трьох основних секцій:

  • верхній колонтитул (header)
  • основна частина
  • нижній колонтитул (footer)

WPS Office Document | Dystlab Store

Отже, користувачі працюють в цих трьох розділах. Кожен намагається зробити це якнайкраще. Хтось розміщує рамку і основний напис монолітом, в якості фонового зображення. Хтось розділяє штамп на окремі блоки і розкидує їх по колонтитулах. Хтось підходить до цієї задачі через вбудовані таблиці, тобто штатними засобами редактора.

Ці підходи мають право на існування, але є один спільний недолік: в тій чи іншій мірі, всі вони прив'язані до тексту.

Куди текст, туди й рисунок

З точки зору програмної реалізації, рисунок мало чим відрізняється від інших елементів (наприклад, таблиць або формул).

За стандартними налаштуваннями, рисунок додається до поточного рядку і має доволі обмежені можливості. Він прив'язується до абзацу і переміщується разом з ним, вгору чи вниз. Якщо мова іде про ілюстрації, які супроводжують технічний звіт, то це OK, але якщо ми говоримо про рамку документа чи основний напис — це, скоріше, проблема.

Вільно перемістити рисунок ліворуч або праворуч нам ще важче, оскільки аркуш лімітований полями. Плюс, на поведінку сильно впливає вирівнювання. Та навіть якщо нам вдалося відправити рисунок на задній план документу і він зайняв бажане положення — це ще не гарантія, що він так само буде відображатися на інших аркушах (а тим паче, в інших програмах).

Все це тому, що ми наповнюємо аркуш різними елементами, а не рисуємо на ньому в явній системі координат, як це реалізовано в графічних редакторах.

Проблеми з експортом і імпортом

Наступна проблема — імпортовані документи.

Наприклад, ви створюєте документ в Microsoft Word, зберігаєте його в "doc" чи "docx" і пересилаєте колезі. Ваш колега відкриває файл в Open Office і бачить хибну картинку, адже налаштування полів, відступів, інтервалів в одній програмі можуть відрізнятися від аналогічних опцій в іншій. Під словом "відрізнятися" я маю на увазі те, як саме програма зчитує і інтерпретує інформацію в файлах. Це дуже розповсюджена практика, яка не дає нам спокою вже багато років.

Проблеми автоматизації

Ще однією, але, на мій погляд, не останньою, є проблема автоматизації.

Якщо ми формуємо основний напис і додаткові графи рисунками, то мусимо заздалегідь вписати туди відповідні реквізити. Якщо ці елементи створювались через вбудовані таблиці, то ми можемо вписати їх вручну, і навіть потім редагувати. Але в обох випадках це не є автоматизацією, адже відсутня можливість керувати цією інформацією централізовано.

До того ж, створені таким чином об'єкти навряд чи коректно відреагують на зміну орієнтації або розмірів аркушу. Уявіть, як впаде продуктивність роботи, якщо вручну вносити зміни в такі документи.

Підсумки по проблемам

Отже, в сухому залишку маємо наступні проблеми з оформленням текстової документації в традиційних офісних програмах:

  • рисунки прив'язані до тексту
  • різні програми по-різному працюють з графікою
  • відсутня автоматизація

Як автоматизувати основний напис в TechEditor

Розробляючи TechEditor, ми урахували всі наведені проблеми.

Кожен аркуш звіту в ТехЕдіторі є окремою площиною, на якій можна рисувати. Поділ на секції в цьому підході ігнорується, площина для рисування охоплює весь простір аркушу. Наразі доступні функції для нанесення ліній, прямокутників, кіл, а також растрові зображення з зовнішніх файлів і текстові вставки (в тому числі, вертикальні чи під кутом). Звісно, користувач має змогу контролювати товщину ліній, колір, шрифт та інші атрибути.

Цей інструментарій можна порівняти з невеличкою вбудованою CAD-системою. Давайте розглянемо, як це працює.

Скриптова автоматизація

Нагадаю, що в TechEditor звіт (Report) є загальною назвою для всіх текстових документів. Під час запуску, програма автоматично створює один порожній звіт.

Щоб почати рисувати на аркушах звіту, скористайтеся командою Drawing Automation на стрічці інструментів Background and Graphics:

Drawing Automation in TechEditor | Dystlab Store

На екрані з'явиться спеціальний скриптовий редактор. Наразі він порожній (точніше, не містить жодних команд з рисування). Щоб нарисувати стандартну рамку з полями 20, 5, 5, 5 мм, додайте між операторними скобками begin..end наступну команду:

begin
  Report.DrawRectangle(20, 5, 210-5, 297-5);
end.

Натисніть Execute і переконайтеся, що на аркуші з'явилася рамка. Команда DrawRectangle працює дуже просто: в якості параметрів в неї передаються дві пари координат, які характеризують початок і кінець діагоналі прямокутника. Відлік ведеться від лівого верхнього кута аркуша.

Додамо команду, яка рисуватиме контур основного напису. Оскільки рамка аркушу має бути нарисована основними лініями, то на початку скрипту розмістимо ще одну команду, яка збільшує товщину контуру:

begin
  Report.PenWidth := 3;
  Report.DrawRectangle(20, 5, 210-5, 297-5);
  Report.DrawRectangle(20, 297-5, 20+185, 297-5-40);
end.

Натисніть Execute.

Drawing Automation in TechEditor | Dystlab Store

Наразі результат є, але він не має нас задовільнити, адже основний напис на титульному аркуші і всіх наступних мають відрізнятися. Додамо до нашого скрипту відповідні команди:

begin
   Report.PenWidth := 3;
   Report.DrawRectangle(20, 5, 210-5, 297-5);
   Report.PageNo := 1;
   Report.DrawRectangle(20, 297-5, 20+185, 297-5-40);
   for Page := 2 to Report.PageCount do
     begin
       Report.PageNo := Page;
       Report.DrawRectangle(20, 297-5, 20+185, 297-5-15);
     end;
end.

Як ви здогадалися, команда Report.PageNo вказує, на якому саме аркуші виконувати наступні команди. Спочатку ми рисуємо рамку на всіх аркушах. Потім рисуємо контур основного напису, а далі в циклі for проходимо по інших аркушах і рисуємо на них контур спрощеного штампу:

Drawing Automation in TechEditor | Dystlab Store

Що станеться з рамкою, якщо змінити формат сторінки?

Важливо, як графічна інформація реагуватиме на зміни формату.

Припустимо, нам потрібно змінити орієнтацію аркуша з портретної на альбомну, а також змінити загальний розмір з А4 на А3. Швидко це можна зробити через вкладку стрічки інструментів View, група Page Format. Після зміни розмірів, натисніть F5 для оновлення звіту:

Drawing Automation in TechEditor | Dystlab Store

Це знову не зовсім те, що ми хотіли бачити. Справа в тому, що ми прописали в командах так звані "жорсткі" координати. Ми оперували суто числами і фігури лишилися прив'язаними до початку системи координат (лівий верхній кут аркушу).

Більш адаптивний, інтелектуальний підхід — врахувати розміри аркушу за допомогою команд Report.PageWidth (ширина аркуша, в мм) і Report.PageHeight (висота аркуша, в мм):

uses Classes, Graphics, Dialogs;
var
  Page: Integer;
  w, h: Double;
begin
   Report.PenWidth := 3;
   w := Report.PageWidth;
   h := Report.PageHeight;
   Report.DrawRectangle(20, 5, w-5, h-5);
   Report.PageNo := 1;
   Report.DrawRectangle(w-5-185, h-5, w-5, h-5-40);
   for Page := 2 to Report.PageCount do
     begin
       Report.PageNo := Page;
       Report.DrawRectangle(w-5-185, h-5, w-5, h-5-15);
     end;
end.

Якщо зараз виконати цей скрипт, то рамка відповідатиме розмірам аркуша А3, а основний напис "притиснеться" до правого боку, як і має бути:

Drawing Automation in TechEditor | Dystlab Store

Такий скрипт спрацює на будь-яких форматах і за будь-якої орієнтації аркушів. Не забувайте оновлювати звіт клавішею F5, коли змінюєте розміри або орієнтацію звіту.

Більше інформації про скриптову автоматизацію ви знайдете в нашій Базі знань. Повний перелік команд для рисування є тут.

Традиційний підхід до вставки зображень

В звітах TechEditor ви можете використовувати й традиційний підхід до вставки зображень. Це має сенс, якщо всі сторінки вашого документу містять однотипне оформлення (наприклад, тільки рамку). В такому випадку, достатньо підготувати фонове зображення в якомусь графічному редакторі і вставити його в звіт командою Background (шукайте її на стрічці інструментів Background and Graphics).

Всі зображення (нарисовані або додані через Background) розміщується в TechEditor на задньому плані. То ж поверх них ви можете друкувати звичайний текст, не хвилюючись, що вони кудись зсунуться.

Готовий шаблон звіту зі стандартними рамками

Вище ми зробили лише перші кроки на шляху до автоматизації звіту. Ви можете продовжити оформлювати цей документ власноруч; я рекомендую зробити це принаймні один раз, для опанування цієї потужної та ефективної технології.

Проте, Dystlab мають в каталозі подібний шаблон з повністю автоматизованою рамкою, основним написом і додатковими графами. В цьому документі автоматизована також нумерація аркушів і позиціонування тексту:

Drawing Automation in TechEditor | Dystlab Store

Ви можете завантажити цей шаблон безкоштовно і використовувати або в навчальних цілях, або для роботи:

Сподіваюся, наведена інформація переконала вас, що перехід на TechEditor з інших офісних програм — більш ніж виправданий. Ми не зупиняємось і розвиваємо це середовище щодня.

Також нагадаю, що ми готові допомогти вам у вирішенні ваших інженерних задач, будь-якої складності. Приєднуйтесь до нас в соцмережах і пабліках, щоб бути в курсі новин. Хай щастить!

Image

Віталій Артьомов

Керівник і співзасновник Dystlab, екс-доцент кафедри мостів ДНУЗТ, розробник TechEditor, к.т.н.

Спеціалізуюся на інженерних розрахунках, статичному і динамічному аналізі будівель і споруд, автоматизації обчислень, розробці проектної документації. Консультую дизайнерів, інженерів, архітекторів та проектні компанії України, Азії, Європи, Канади, США, Австралії, тощо. Знаюся на нормах проектування України (ДБН, ДСТУ), Європи (Eurocode), Канади (OBC, CSA).

Готовий проконсультувати і допомогти вам у роботі або бізнесі:

  • +380504576819 (WhatsApp)
  • Ця електронна адреса захищена від спам-ботів. Вам необхідно увімкнути JavaScript, щоб побачити її.

Dystlab Store - магазин для инженеров

Онлайн-хаб з інженерними рішеннями для користувачів TechEditor.

Україна, м. Івано-Франківськ.

WhatsApp (українською або англійською):
+38 095 812 2046

innot needed textfoanother not needed text@dystlabdummy text.store

Visa MasterCard | DS.Store
Visa MasterCard | DS.Store

© Copyright 2019-2023 Dystlab™, Ukraine. All rights reserved.
Ми використовуємо cookies

Сайт Dystlab Store використовує файли cookie. Деякі з них необхідні для роботи сайту, інші ж допомагають нам покращити ресурс і взаємодію з користувачами (tracking cookie). Ви можете дозволити чи заборонити ці файли на своєму пристрої. Але щоб користуватися усіма функціями сайту в повному обсязі, рекомендуємо дозволити файли cookie (кнопка OK).