Программы и описание интерфейса

OneClickHelp это набор программ, с одним окном и 5 закладками, по числу программ.

1. Преобразование Word файла в Справку ( Word2Help).

2. Преобразование Chm в Word документ ( Chm2Word, chm to doc).

3. Сканирование папок и построение файла справки (html to chm).

4. Создания коллекций Chm.

5. Декомпиляция справки.


Интерфейс

Все общие элементы интерфейса показаны ниже, а элементы интерфейса каждой программы описаны далее.

Название: Интерфейс программы

Если в поле, в котором указывается файл или папка, дважды кликнуть, то откроется Проводник для папки или приложение, зарегистрированное для этого файла.

Название: Кнопка Выполнить Выполнить программу преобразования в соответствии с правилами для данной закладки


Меню и панель инструментов

Меню Файл

Загрузить файл проекта. Открыть диалоговое окно выбора файла типа *.1ch для загрузки файла проекта (параметров программы).

Сохранить файл проекта. Сохранить все параметры программы в файле типа *.1ch.

Сохранить файл проекта как. Сохранить файл под другим именем.

Последние файлы. Файлы проекта (до 10 штук), с которыми вы работали в последнее время.

Выход. Закрыть приложение.

Меню Редактирование

Параметры проекта. Редактировать параметры в файле проекта.

Параметры OneClickHelp. Редактировать параметры программы OneClickHelp.

Очистить форму. Все параметры на форме очищаются.

Меню Справка

Справка. Показать справку программы с содержанием разделов.

Индекс. Показать указатель справки.

Поиск. Показать справку с окном для поиска фраз.

Коллекция справок. Показать коллекцию справок программы OneClickHelp.

О программе. Показать окно с информацией о программе.

Временная регистрация…Открыть форму для ввода параметров и получения 30 дневной лицензии.

Регистрация… Открыть форму для ввода регистрационного ключа.

Обновление. Проверить последняя ли версия установлена у вас.

Панель инструментов

Название: Панель инструментов


Word в Help (doc to chm)

На рисунке ниже представлен Word документ (документация OneClickHelp) как он выглядит в режиме Схема документа, и как он был скомпилирован в Справку в формате Chm, Aspx, Html (Word2Chm, Word2Aspx, Word2Html).

Название: Различные виды Справок


Интерфейс программы

Название: Интерфейс Word в CHM

Поле Word файл - Путь для Word файла. Тащите сюда файл или используйте кнопку Название: Иконка Word. Это может быть файл с расширением doc, docx, rtf, xml (word xml), htm, html, подготовленный в MS Word или, например, в Open Office/LibreOffice. В дальнейшем будем называть такой файл – Word файл.




Внимание:
Важно, чтобы документ содержал заголовки с форматированием H1- H9. Остальные требования см. в разделе Ограничения.



Поле Заголовок справки - Заголовок Справки (Help) - имя окна, см. Рис1. Справка имеет заголовок «OneClickHelp Справка».

Поле Папка проекта – Выбор папки, где будет построена Справка (Help) и вспомогательные файлы. Тащите сюда папку или используй кнопку Название: иконка папки. Если папка не указана, программа сама создаст каталог с именем имя вашего Word файла + “_Word2Help”, например, 1Ch_Word2Help.

Поле Файл имен - Выбор файла с определениями имен для глав и страниц в Help, а также, какие папки/файлы надо пропускать. Тащите сюда файл или используй кнопку Название: иконка Файла имен  Подробнее…

Поле Файл стилей(CSS) - Выбор стиля или файла стиля для справки. Также возможно перетащить сюда файл или использовать кнопку Название: Иконка стилей. При выборе стиля Word, будет использован стиль самого документа. При выборе «OneClickHelp» будет использован стиль, предлагаемый программой. Этим стилем оформлена справка самой программы. При выборе стиля «OneClickHelp & Navigation» к стилю добавлена навигация по страницам (т.е. вам самим не надо устанавливать доп. Параметры). Подробнее про стили…

Поле Формат справки – Выбор формата компилируемой справки. Компиляция справки возможна, если у вас установлены соответствующие программы hhc.exe(HTML Help 1.x).

Поле Открыть справку – при выставленном флажке, Название: Флаг открытия Справки после создания справки, она будет открыта, если имеется программа, которая зарегистрирована для работы с расширением файла CHM или Html.


Шаги преобразования Doc-2-Help

Word файл (*.docx, *.doc, *.rtf, …) преобразуется в компилированный файл/файлы в формате Chm, Aspx, Html. Этот процесс состоит из следующих шагов:

1. Word файл преобразуется в html файл.

2. Html файл преобразуется в набор html файлов (если в документе есть заголовки (heading) различных уровней).

3. Набор html файлов связывается (если разрешено) гиперссылками Назад/Домой/ Следующая.

4. Строится набор файлов для Chm/Web проекта и файлы index.html и contents.html или .aspx.

5. Компилируется справка в формате Chm.

После каждого этапа можно определить пользовательскую программу для дополнительной обработки. Список этих программ определяется в секции <Word2Help> в файле проекта. Программы выполняются асинхронно, т.е. OneClickHelp запускает их и не ждет, что с ними происходит.

По структуре преобразование MS Word документа в Chm Справку происходит один в один.

Все, что находится выше самого первого уровня заголовка, (обычно это титульный лист и оглавление) попадает в стартовую страницу – default.htm, которая появляется первой, как только вы открыли справку.

Папка _css – папка, куда помещается стиль документа, как он был определен вами в Word (с последующим преобразованием в html). Папка 1ch-ru.files – папка с графикой из вашего документа.

Зачем нужна возможность подключения дополнительных внешних программ? Это необходимо, чтобы Вы могли добавить свои действия по обработке. Например, вместо стиля, который формируется из документа, пользователь может после преобразования (шаг 2) скопировать свой стиль, а также добавить свои иконки для навигации. Или, например, после компиляции справки, она может быть скопирована в место, где находится программа, чтобы проверить, как работает контекстная справка. Или может быть вызвана программа, которая автоматически проверить все связи в справке и т.д.


Дополнительные возможности

Далее описаны дополнительные возможности, позволяющие создавать справки с расширенным функционалом.


Две дополнительные кнопки

К Справке можно добавить две фиксированных кнопки, для быстрого перехода к каким-либо разделам, например.

Название: две дополнительные кнопки в Справке

В справке OneClickHelp используются две кнопки - Вопросы/ОТветы и для глоссария. Как это сделать?

1. В Файле, который вы используете для определения имен, впишите две строки
TTFAQ"Jump1Url
TTglossary"Jump2Url

TTFAQ, TTglossary – произвольные имена (вы можете выбрать свои), Jump1Url и Jump2Url – фиксированные.

2. В Word документе создайте две закладки с именами TTFAQ и TTglossary

3. В секции <HtmlHelp> файла проекта заполните две строки Jump1Text и Jump2Text именами кнопок, как на рисунке ниже.

Название: Секция HtmlHelp

Эти слова будут появляться под названиями кнопок.


Ссылки на другие справки

Вы в документ можете вставить ссылку на другую справку в виде:

ChmFile::/url,

например

Glossary.chm::/glossary_pro.htm

Эта ссылка будет работать только из справки и притом, если файл Glossary.chm находится в той же папке что и ваша справка.


Раскрывающиеся группы текста

Чтобы увидеть, что это такое, надо в Справке программы OneClickHelp перейти к разделу Вопросы-Ответы (ВОТ). Для создания раскрывающихся  групп в MS Word надо определить 4 стиля:

1. Имя = expandToggle, все остальное как хотите. В _style.css имя этого стиля - p.expandToggle

2. Имя = expandBegin, размер шрифта = 1, все остальное как хотите. В _style.css не определен, так как удаляется из html.

3. Имя = expandEnd, все остальное как хотите. В _style.css не определен, так как удаляется из html.

4. Имя = sweepToggle, все остальное как хотите. В _style.css не определен, так как удаляется из html.

Эти определения стилей в виде изображения можно представить следующим образом.

Название: Схема Раскрыть-Собрать


Изменение размеров изображения

Для создания такого свойства в Help надо в MS Word.

1. Определить два стиля

· Имя = ExpandPictureBegin, основан на обычном, размер = 1.

· Имя = ExpandPictureEnd, основан на обычном, размер = 1.

2.  Вставить эти два стиля и между ними картинку.

3. Для этой картинки определить закладку, например, xxx.

ExpandPictureBegin

Название: Стиль ExpandPictureBegin

Название: иконка изображения

Изображение с закладкой xxx

ExpandPictureEnd

Название: Стиль ExpandPictureEnd

4. Создать в каком любо продукте увеличенное изображение и дать ему имя xxxBig.jpg. Последние 7 символов Big.jpg – фиксированные и не подлежат изменению.

5. Создать командный файл, который копирует xxxBig.jpg в папку изображений создаваемого проекта. В случае OneClickHelp документации это выглядит так

copy "c:\Documents and Settings\All Users\Documents\1ch\navigation\BigImages\*.*" "c:\Documents and Settings\All Users\Documents\1ch\1ch-ru\1ch-ru.files"

copy "c:\Documents and Settings\All Users\Documents\1ch\navigation\BigImages\*.*" "c:\Documents and Settings\All Users\Documents\1ch\1ch-ru\1ch-ru.files"\1ch\Help\1chDoc\navigation\BigImages D:\VS2008\1ch\1ch\Help\1chDoc\1ch-ru\1ch-ru.files

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


Внимание:
Хотя вы создали закладку в Word, эта закладка в Help будет удалена, и ссылка на нее не будет работать. Поэтому если вам необходимо ссылаться на эту картинку создайте закладку рядом с этой картинкой.




Копирование текста в буфер обмена

Для создания такого свойства в Help надо в MS Word

1. Определить два стиля

· Имя = CopyItBegin, основан на обычном, размер = 1.

· Имя = CopyItEnd, основан на обычном, размер = 1.

2. Вставить эти два стиля и между ними текст, схематично это можно представить следующим образом.

CopyItBegin

Название: Стиль CopyItBegin

Ваш произвольный текст

CopyItEnd

Название: Стиль CopyItEnd

Пример (его работу и как это выглядит окончательно можно увидеть только в Chm, Aspx или Html):

Private Sub mnuHelpChm_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuHelpChm.Click
Help.ShowHelp(Me, HelpProvider.HelpNamespace)
End
Sub

В Сhm, Aspx, Html добавляется кнопка и фраза CopyCode и для них определен стиль <div class='CopyIt'>, который никак не определен в стиле по умолчанию, таким образом, это в ваших руках.


Aspx генерация сайта

Для построения справки в формате Aspx необходимо определить один параметр, «формат справки» в основном интерфейсе программы - ASPX.

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

1. Добавьте папку App_Code к вашему проекту или возьмите из примера OneClickHelp.

2. Добавьте _WebStyle.css файл к вашему проекту или возьмите из примера.

3. Добавьте web.config файл или возьмите из примера.

4. В файле web.config в appconfig секции замените ="baseSiteUrl" на ваш url.

Master.page содержит footer и header, а также меню сайта. Почему это не сделано за вас – у вас свое приложение, свои стили, свой сайт и свое администрирование. Чтобы сгенерить пример сайта OneClickHelp в формате Aspx воспользуйтесь проектом -AspxSiteRu.1ch.


Удаление внутренних комментариев

Иногда полезно иметь в тексте документа комментарии, которые в процессе создания Справки будут удалены. Можно было бы использовать скрытый текст, но он не удаляется, а только помечается атрибутом display:none; и поэтому до него можно добраться в html странице.

Итак, для создания внутреннего комментария надо в MS Word.

1. Определить два стиля

· Имя = InternalNoteStart, основан на обычном, размер = 1.

· Имя = InternalNoteEnd, основан на обычном, размер = 1.

2. Вставить эти два стиля и между ними текст, схематично это можно представить следующим образом.

InternalNoteStart style                      Название: InternalNoteStart style

Ваш произвольный текст

InternalNoteEnd style                        Название: InternalNoteEnd style

Другой способ – пометить параграф желтым цветом. Цвет выбирается из палитры.


Вставка блоков из файла, команды для FolderName.txt

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

<a href="http://www.windows7download.com/" target="_blank"><img src="http://www.windows7download.com/templates/w7d/images/awards/
windows7compatible.png" alt="Windows 7 Compatible - Windows 7 Download" border="0" width="160" height="80"/></a>

В итоге это должно быть изображение со ссылкой на их сайт, но в Word оно так и останется в виде html кода. Это можно обойти. Для создания такого свойства в Help надо в MS Word:

1. Определить стиль
Имя = Linki, основан на обычном

2. Написать в месте, где такая должны быть вставка слова Link1 и т.д. Link2 и т.д. Слово Link – обязательно! Цепочка слов LinkAnyFoo будет заменена на пустую строку.

3. Стиль этих слов Link1, Link2, и т.д. должен быть Linki.

4. В файле FolderName.txt определить эти слова следующим образом:

Link1=<a href="http://www.windows7download.com/" target="_blank"><img src="http://www.windows7download.com/templates/w7d/images/awards/
windows7compatible.png" alt="Windows 7 Compatible - Windows 7 Download" border="0" width="160" height="80"/></a>
Link2=<a href="http://www.suggestsoft.com/"> <img src="http://www.suggestsoft.com/scr/ads.gif" width=80 height=32 border=0 alt='Ads on SuggestSoft.com'> </a>

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

Пример Вы можете видеть на первой странице документа 1ch-ru.docx, а также рассматривая примеры, которые устанавливаются вместе с приложением. Если в FolderName.txt написать так Link2=file:///d:\example.txt, то вместо слова Link2 в Help будет вставлено содержимое файла example.txt. Таким образом, можно вставить строку или содержимое целого файла.

Также можно писать в FolderName.txt так

LinkМояЗамена=file:///ПолныйПутьВашегоФайла

LinkМояЗаменаCopy=ПолныйПутьФайла

LinkМояЗаменаCopy=Источник, Получатель

LinkМояЗаменаReplacement=ЧтоИщем, НаЧтоМеняем

LinkМояЗаменаReplacement=ЧтоИщем, НаЧтоМеняемvbcrlf (vbcrlf будет заменено на возрат каретки + перевод строки)

Что произойдет? При обработке какой-то странице, где определен LinkХХХ произойдет вставка файла ПолныйПутьВашегоФайла, затем там, где будет сохранена html страница. Скопируется файл ПолныйПутьФайла, скопируется файл из Истоник в Получатель, затем в html файле ЧтоИщем заменится на НаЧтоМеняем. LinkХХХCopy и LinkХХХReplacement может быть определено столько сколько вам нужно.



Подстановка/замена

Содержимое Справки Chm и Aspx могут отличаться. Например, в справке на первой странице сказано – Это справка сделана из Word, а на сайте – Этот WebSite сделан из Word. Можно было бы это сделать через только, что определенное свойство – Вставка фрагментов из внешнего файла. Однако удобнее видеть в документе как есть, сразу с нужным форматированием. Это также можно сделать через внешний файл FolderName.txt.

1. В word документе выбрать слово или цепочку слов и назначить им один язык – Review/Set Language и выбрать язык.

2. В word выбранную эту же цепочку слов отформатировать следующим образом – Font/Character spacing/Expanded/By 0.1

3. В файле FolderName.txt определить эти слова следующим образом:
ЦепочкаВашихСлов=Ваши новые слова

Пример Вы можете видеть на первой странице документа 1ch-ru.docx, где слово Help отформатировано таким образом. В проекте для справки в файле FolderName указано Help=Help, а для Aspx проекта Help = WebSite.


Создания SlideShow

Этот эффект вы можете наблюдать в Справке в разделе Word в Help. Для создания такого свойства надо в MS Word.

1. Определить два стиля

· Имя = SlideStart, основан на обычном, размер = 1.

· Имя = SlideEnd, основан на обычном, размер = 1.

2. Вставить эти два стиля и между ними таблицу с одним столбцом. В нечетных ячейках – изображения, в четных текст. Изображения должны быть одинакового размера и желательно не меньше чем 100*100 пиксель. В одном разделе Word документа должен быть один slide show (это значит, на одной странице html будет один slide show).

Пример Вы можете видеть в разделе Word в Help wordовской документации.


Внешняя графика

Иногда удобнее, чтобы изображения были не «внедрены» в Word, а ссылались на внешний файл. Такой файл изображения легко редактировать и менять. Если ваш Word файл будет расположен в той же директории, что и папки с графикой, то справка будет построена корректно. Пример:

Word.docx (файл)

FolderImg1 (папка)

FolderIco (папка)

FolderBigImages (папка)


Шаблон для страницы

Иногда надо создать что-то специфическое, например, чтобы справка выглядела как книга. Например, эта страница в справке CHM выглядит именно так. Для этого нужно создать изображения краев книги, цвет для фона и т.п. У вас получится шаблон, для данной страницы он выглядит так как почти естественный разворот книги (это только в локальной справке, не на сайте и в Word документе).

<html>

<head>

<title>vаrTitle</title>

<meta http-equiv='Content-Type' content='text/html; varСharset >

varСss

<style type="text/css">

p.hbook

      {margin-top:12.0pt;

      margin-right:0cm;

      margin-bottom:3.0pt;

      margin-left:0cm;

      page-break-after:avoid;

      font-size:16.0pt;

      font-weight:bold;

      font-family:"Times New Roman","serif";

}

 p.book

      {margin-bottom:.0001pt;

      font-size:14.0pt;

      font-family:"Times New Roman","serif";

      margin-left: 0cm;

      margin-right: 0cm;

      margin-top: 0cm;

}

p.bcode {

      margin-right:10pt;

      margin-bottom:0cm;

      margin-bottom:.0001pt;

      font-family: Courier New;

      font-size: 9pt;

line-height:100%;

}

.textheader {

      text-align: right;

      font-size: large;

      font-family: Verdana, Geneva, Tahoma, sans-serif;

}

.topborder {

      border-top-style: solid;

      border-top-width: 2px;

}

</style>

</head>

<body>

<table cellpadding="0" cellspacing="0" style="width: 100%">

      <tr>

            <td><img height="96" src="RelativePathToСss/_css/tl.bmp" width="96" ></td>

            <td style="background-image:url('_css/_css/t.bmp'); height: 96px;">

                        <p class="textheader">OneClickHelp</p>

            </td>

            <td><img height="96" src="_css/_css/tr.bmp" width="96"></td>

      </tr>

      <tr>

            <td style="background-image:url('_css/_css/l.bmp')"></td>

            <td bgcolor="#E5DEC5" class="topborder">

varСontent

            </td>

            <td style="background-image:url('_css/_css/r.bmp'); width:97px;">&nbsp;</td>

      </tr>

      <tr>

            <td><img alt="" height="76" src="_css/_css/bl.bmp" width="96"></td>

            <td style="background-image:url('_css/_css/b.bmp'); height: 76px;"></td>

            <td><img alt="" height="76" src="_css/_css/br.bmp" width="96"></td>

      </tr>

</table>

</body>

</html>

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

· vаrTitle – будет заменен на строку из тега <Hi>…</Hi> данного раздела.

· vаrCharset – будет заменен на charset=windows-1251, взятый из кодировки, в которой сохраняется doс файл при преобразовании doc в htm.

· vаrCss – будет заменен на путь к файлу стилей ~ … _css/_style.css.

· RelаtivePathToCss – будет заменен на путь к папке стилей ~ ../_css/….

· vаrContent – будет заменено на содержимое страницы.

Чтобы получилась окончательная страница, надо позаботиться о копировании файлов графики в паку стилей _css. Полный пример находится где и все примеры, это проект book.1ch.

При посроении справок (если вы не определите что-то свое) используется шаблон следующего вида.

<html>

<head>

<title>Программы и описание интерфейса</title>

<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />

</head>

<!--HeaderNavigation-->

<body>

varContent

</body>

<!--FooterNavigation-->

</html>