CHM
- это расширение файла в формате Compressed HTML Help. Формат был
разработан Microsoft для гипертекстовых справочных систем. Для просмотра
CHM файлов достаточно наличия в системе Internet Explorer.
У CHM файлов, как правило, есть Содержание - отдельная панель со
списком статей для упрощения навигации. В наличии содержания, пожалуй и
заключается главное отличие CHM файлов от использовавшихся ранее HLP
файлов справки Windows. Несколько человек интересовались процессом создания моего учебника по автоматической установке Windows
в формате CHM, а в двух словах это не описать. Изложенное ниже
руководство применимо к созданию любого CHM файла, обладающего
древовидной структурой отображения страниц в содержании, индексом,
полнотекстовым поиском с поддержкой логических операторов и возможностью
добавления страниц в избранное. Рассказ отражает мой личный опыт, и не
исключено, что есть более простой путь (особенно при использовании
специализированных и недешевых программных продуктов). Предполагается,
что все HTML страницы, которые вы хотите включить в CHM уже
подготовлены: в них работают все внутренние ссылки и отображаются
картинки и прочие объекты. Речь в рассказе пойдет в основном о создании и
компиляции CHM файла. Давид и Голиаф (HTM2CHM и HTML Help Workshop)Для создания оффлайн версии сайта использовались две бесплатные программы: Microsoft HTML Help Workshop и HTM2CHM . По ходу рассказа я объясню, почему не удалось обойтись лишь одной из них. HTM2CHM
- маленькая программа, написанная Ярославом Кирилловым. Программа
обладает русским интерфейсом и интуитивно понятна. Если вы не планируете
снабжать свой CHM файл полнотекстовым поиском и индексом, a расширенные
настройки внешнего вида CHM файла вам не нужны, то наверное не стоит
городить огород с HTML Help Workshop. Создать файл Содержания и
выстроить страницы в желаемом порядке, назначив им различные иконки
можно и в HTM2CHM. Мне же возможностей этой программы не хватило -
я посчитал, что для почти сотни страниц учебника нужен полнотекстовый
поиск, а также не помешает индекс. | |
| Поэтому
пришлось задействовать HTML Help Workshop - творение программистов
Microsoft. В отличии от HTM2CHM, программа не очень интуитивно понятна и
русского интерфейса у нее тоже нет. Зато функционально она меня
устроила всем, кроме того что не сумела корректно сформировать файл
содержания из кириллических заголовков страниц. В заключение этого
мини-сравнения хочу сказать, что у HTML Help Workshop получился намного
более компактный учебник (у HTM2CHM размер выходного файла оказался в
1.5 раза больше). Итак, перейдем к делу. Я изложу тонкости
создания CHM в файла том порядке, в котором я создавал свой учебник.
Рассказ о HTML Help Workshop будет длинным, но лишь потому, что первый
раз требуется указать много настроек проекта (в дальнейшем изменить уже
имеющийся проект намного проще). |
Давид (HTM2CHM) Работа
с программой не должна вызвать затруднений даже у чайников - настолько
все понятно и просто. Я рассмотрю создание содержания и компиляцию CHM
файла. Создание содержанияСодержание - это фактически
обязательная часть любого CHM файла. На этой закладке отображается
список статей (страниц), входящих в файл. Будет ли этот список линейным
или древовидным, зависит от структуры информации
и в каком виде вы ее хотите преподнести читателю. За содержание
отвечает файл с расширением .HHC, который иногда для краткости именуют TOC файлом (Table of Contents). С создания TOC файла мы и начнем. Как
правило, названия статей для содержания генерируются из заголовков HTML
страниц (тег TITLE). Для создания исходного файла содержания я как раз и
использовал HTM2CHM, поскольку мне не удалось преодолеть проблему
некорректного отображения кириллицы в TOC файле, сгенерированном HTML
Help Workshop. Создание файла содержания в HTM2CHM - дело нехитрое. Запускаем HTM2CHM и видим список режимов работы программы. | Выбрав
Содержание, мы попадаем в окно генератора содержания, в котором нужно
указать папку с HTML файлами, а также имя и расположение результирующего
TOC файла. |
После генерации файла
содержания откроется редактор, в котором все статьи, вошедшие в
содержание будут отображаться вертикальным линейным списком. HTM2CHM
позволяет отсортировать статьи в алфавитном порядке автоматически или
сделать это вручную. Названия статей можно редактировать, а также
назначать статьям индивидуальные иконки. Отмечу, что создание
древовидной структуры и назначение иконок можно сделать и в HTML Help
Workshop, однако в HTM2CHM это реализовано поудобнее. Например, в
HTM2CHM для перемещения статей можно просто перетаскивать их мышью или
делать это с нажатой клавишей CTRL, что намного удобнее, чем тыкать
курсором в кнопку, перемещая за раз всего на одну позицию. Иконки тоже
назначаются легко - трудно придумать что-то проще, чем выпадающее меню
(у HTML Help Workshop смена иконки находится в свойствах страницы, да
еще и на второй закладке). Короче говоря, я рекомендую привести
файл содержания к желаемому виду в HTM2CHM, а уж если вам понадобятся
дополнительные настройки CHM файла, то использовать для этого HTML Help
Workshop. | |
КомпиляцияПосле того как файл содержания готов, можно переходить к компиляции CHM файла. В главном окне программы жмем большую кнопку Создать. И заполняем все поля, не забывая про только что созданный файл содержания. Через несколько секунд у вас будет готовый CHM файл. К
сожалению, HTM2CHM не обладает возможностью создания полнотекстового
поиска (или я не нашел такой опции), так что покончив с Содержанием, я
продолжил работу над CHM файлом в HTML Help Workshop, в котором мне
также открылись и другие возможности. Голиаф (HTML Help Workshop) За
неказистым (и иногда не очень удобным) интерфейсом HTML Help Workshop
скрывается очень мощный инструмент создания CHM файлов. Насколько мне
известно, у программы нет русского лица (однако, русификаторы существуют),
да и английский интерфейс не слишком информативен - иконки не имеют
подписей и пока их не "выучишь", приходится наводить курсор мыши для
получения всплывающей подсказки. Однако, функционально HTML Help
Workshop превосходит HTM2CHM. Я опишу лишь те функции программы, которые
использовал сам. Вообще, HTML Help Workshop снабжен достаточно
подробной справкой (EN). Создание нового проектаПервое что нужно сделать - это создать новый проект (File | New). | Выбираем Project и нам открывается мастер создания проекта. |
На
первом этапе предлагается конвертировать существующий WinHelp проект.
Поскольку мы ничего не конвертируем, то флажок ставить не надо. | |
| Указываем имя файла проекта (*.HHP) и папку, в которой он будет сохранен. |
На
этом этапе можно указать HTML файлы, которые мы включаем в проект, а
также файл содержания и индекса (HHK). Я указываю только HTML файлы, а
TOC файл, созданный в HTM2CHM, добавляю потом. | |
| Добавляем HTML файлы. И на этом работа мастера завершается. |
По завершении работы мастера левая часть рабочего окна HTML Help Workshop выглядит примерно так.
Настройка внешнего вида Займемся
настройкой будущего CHM файла. На своем опыте я уяснил, что сначала
лучше настроить внешний вид, а потом уже остальные свойства проекта.
Итак, сначала определимся, какие закладки мы хотим видеть в
навигационной панели (например, Содержание, Индекс, Поиск, Избранное),
какие кнопки мы хотим видеть в верхней панели, настроим размер окна и
т.д. В вертикальной панели инструментов HTML Help Workshop есть ряд иконок - нас интересует третья сверху (Add/Modify Windows Definitions). | Если это ваш первый щелчок на иконку, то появится такое диалоговое окно, в котором нужно напечатать Navigation Pane. |
Нам откроется окно Window Types, в котором можно выставить немало настроек. На закладке Navigation Pane нужно отметить следующее: - Window with navigation pane, topic pane, and button - обязательно ставим флажок, чтобы навигационная панель отображалсь в скомпилированном CHM файле. Поставив флажок, мы видим остальные опции.
- Тabs - закладки навигационной панели
- Default Tab - активная закладка по умолчанию (при открытии файла)
- Search Tab и Advanced - закладка поиска и возможность расширенного поиска с использованием логических операторов
- Favorites tab - закладка Избранное
| |
| Закладка Buttons контролирует какие кнопки будут доступны на верхней панели скомпилированного файла. Выбор оставляю на ваше усмотрение. |
Закладка Position
позволяет задать размер окна и его расположение на экране. Рекомендую
дать пользователю возможность автоматически запомнить размер и позицию
после первого запуска CHM файла (Save user defined window position after first use). Можете также поиграть с кнопкой Autosizer. | |
| На закладке Files указываем ряд важных файлов: - Window - фокус по умолчанию при запуске (я выбираю Навигационную панель)
- TOC
- файл содержания. Здесь я указываю файл, который ранее создал в
HTM2CHM (путь нужно указывать, если только TOC не в одной папке с файлом
проекта)
- Index - индексный файл (если вам нужен индекс - впишите туда index.hhk; о создании индекса я расскажу ниже)
- Default - страница, отображаемая при открытии CHM файла
- Home - домашняя страница (кнопка Home на панели)
|
Остальные закладки диалогового окна Window Types изучите самостоятельно. Свойства проекта Чтобы попасть в свойства проекта, делаем двойной щелчок на слове [Options] (в левой верхней части главного окна программы под закладкой Project)
и идем по закладкам по порядку. Может я не уловил логики программы, но
мне показалось, что часть настроек дублируются. Т.е. ниже вы увидите
некоторые настройки, которые мы уже установили, ковыряясь во внешнем
виде. | На закладке General нас интересуют: - Title - название CHM файла (отображается в заголовке окна скомпилированного файла)
- Default File - страница (статья), которая отображается при открытии CHM файла
- Default Window - я выбираю Navigation Pane (навигационная панель с закладками в левой части CHM файла)
- Language - Russian (обязательно, если в Содержании кириллица)
|
На закладке Files мы указываем следующие параметры: - Compiled File - имя и расположение скомпилированного файла
- Contents File - вот тут я и указываю TOC файл, созданный в HTM2CHM
- Index file - (если вам нужен индекс - впишите туда index.hhk; о создании индекса я расскажу ниже)
- Include keywords from HTML file - эта опция предполагает наличие заранее сформированных ключевых слов в HTML файлах для создания индекса. См. ниже.
- Full text search stop file - текстовый файл с расширением STP, содержащий слова, которые вы хотите исключить из полнотекстового поиска. См. ниже.
| |
| Едем дальше - закладка Compiler. Здесь мы отмечаем лишь Compile full-text search information (если, конечно, нужен полнотекстовый поиск). |
На этом начальную настройку проекта можно считать завершенной. Теперь можно уже переходить к компиляции. Если вас интересует создание индекса и исключение слов из поиска, то читайте дальше. Создание индекса Где-то
в тексте справки к HTML Help Workshop мне встретилась фраза, что
пользователи чаще обращаются к индексу, чем к поиску. Не знаю насколько
это верно, но мне вообще хотелось иметь индекс, чтобы было все
профессионально :) Добавить ключевые слова для индекса в каждую страницу
можно через интерфейс HTML Help Workshop или вручную в каждую страницу.
Я изложу оба способа. Добавление ключевых слов через интерфейс Workshop Через интерфейс программы ключевые слова добавляются на закладке Index. Я обойдусь без скриншотов, так как там трудно промахнуться (окна будут фактически аналогичны тем, что приведены в рассказе о редактировании проекта). Нажимаем на вторую сверху иконку с изображением ключа и получаем окно в котором нужно ввести ключевое слово и кнопкой Add
выбрать страницу, к которой слово будет относиться. Одно ключевое слово
может относиться к нескольким страницам - просто добавляйте их все в
том же окне. В итоге индекс будет сохранен в файл index.hhk, который несмотря на расширение является текстовым файлом, содержащим гипертекстовую разметку (HTML). Я,
однако, избрал другой способ, и теперь уже точно не помню почему. Если
память мне не изменяет, кириллические ключевые слова, добавленные через
GUI, впоследствии некорректно отображались в CHM файле. Так что прежде
чем наполнять индекс тысячами слов проверьте как у него дела с
кириллицей :) Внесение ключевых слов в HTML код В
код HTML страницы после тега BODY вносится следующий текст (приводится
скриншот, т.к. данный HTML код вырезается скриптом сайта): Непроизносимый набором символов лучше скопировать :) Вообще, это одна строка, просто на скриншоте сделан перевод строки. object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e" Очевидно,
что можно указать несколько ключевых слов - они все будут указывать на
статью, в текст которой они были внесены. В итоге я методом
Search&Replace внес эту абракадабру во все страницы, а потом
потихоньку добавлял ключевые слова. Ни один из способов особо
быстрым не назовешь. Так или иначе приходится назначать ключевые слова
страницам вручную, и как это автоматизировать непонятно. Если вам
известен более простой способ, то я буду рад о нем узнать. Исключение слов из полнотекстового поиска Исключить
слова из полнотекстового поиска можно, поместив их в обычный текстовый
файл (одно слово на строку) и сохранив файл с расширением STP. В виде
исключений я использовал слова, которые часто упоминаются на страницах,
но вряд ли нужны при поиске. Фрагмент файла: Автор
в
вас
все
для
до
и
Иcточник
из
или
им
на
не
но
Опубликована
переведено
по
при
Распечатано
с
так
то
у
что
эти
этот
я
XP
Windows
unattended
загрузить
ссылка
ссылке Не скажу, что мне удалось реально сэкономить на размере
файла таким образом. Используя список на 70 слов я сэкономил 30 кб.
Однако, для больших CHM файлов с длинным списком слов-исключений это
вполне может иметь смысл. Компиляция Если
у вас есть по крайней мере файл содержания и список страниц, можно
попробовать запустить компиляцию и посмотреть, что получается. Делается
это через меню File | Compile или по нажатию третьей кнопки слева на верхней панели инструментов. Получаем
предложение сохранить все файлы и показать скомпилированный файл по
окончании компиляции. Через несколько секунд или минут (в зависимости от
кол-ва материала и/или скорости
компьютера) получаемый желаемый и любимый CHM файл. Смотрим что
получилось. Если чего-то не хватает, проверяем настройки и компилируем
снова. Редактирование существующего проекта Ну вот примерно такая картина наблюдается у меня на закладке Contents. Сразу видно, что файл содержания из HTM2CHM был принят как родной. | Слева панель инструментов, кнопки которой означают: - Свойства содержания
- Добавить заголовок (секцию). Предварительно нужно выбрать страницу, после которой будет вставлен заголовок.
- Добавить страницу. Предварительно нужно выбрать страницу, после которой вставляется новая.
- Редактировать выбранную страницу или заголовок
- Удалить выбранную страницу или заголовок
- Перемещение страниц (перетаскивания нет)
- Посмотреть исходный код HTML (и внести изменения)
- Сохранить файл
|
Допустим,
нам нужно добавить статью. Нажимаем на иконку с изображением
вопросительного знака (3) и видим диалог добавления статьи. Здесь все делается в таком порядке: - Название статьи
- Добавить статью
- Выбрать статью
- Статья добавлена
На
этом же скриншоте видна закладка Advanced, перейдя на которую можно
назначить странице иконку. Однако, она недоступна в режиме создания
новой статьи. А вот после создания - в режиме редактирования (кнопка с
изображением карандаша (4)) иконку статье уже можно назначить. | |
Все
изменения сохраняются в файле проекта с расширением HHP. По сути это
текстовый файл в формате INI - его можно даже поправить руками
(например, внести новые страницы в список). Так победил ли Давид Голиафа?Все
зависит от поля боя :) Я вот наоборот пытался их подружить. И в связке
эти две программы неплохо сработали. Другое дело, что сгенерировав
содержание в HTM2CHM, я больше к ней не возвращался, а продолжаю
редактировать проект в HTML Help Workshop, но на то у меня были свои
причины. А вообще, создание CHM файла не такая уж и сложная
задача. Простой CHM файл можно создать при помощи HTM2CHM за три-четыре
минуты. Потом можно потратить еще час на доводку, если редактировать
меню и баловаться иконками страниц. HTML Help Workshop займет побольше
времени, особенно на начальном этапе. Однако разобравшись с настройками и
меню, вы будете тратить совсем немного времени на создание более
функциональных и компактных файлов. Если у вас есть на примете другие бесплатные (и удобные) инструменты для создания CHM файлов, то я буду признателен за ссылки на сайты программ.
MOD2000: Инструкции по созданию файлов контекстной справки HTML http://support.microsoft.com/kb/242433/ru
В HTML Help Workshop,
поставляемой вместе с Microsoft Office 2000 Developer, можно создавать
файлы справки в сжатом формате HTML (.chm). Это существенное изменение в
ходе семинара справки, включенный в Microsoft Office 97 Developer
Edition. Help Workshop в Microsoft Office 97 Developer Edition создает
файлы Winhelp (.hlp). В этой статье показано, как создать простой
файл HTML-справки в формате HTML Help Workshop, а затем использовать
файл справки в форме Microsoft Access. Файл справки использует
идентификаторы контекста для отображения различных разделов справки, в
зависимости от того, где щелкните указатель в форме. Создание простого файла справки HTML заключается в выполнении следующих разделов: - Создание двух HTML-файлы: формы и элемента управления.
- Создание файла сопоставления для определения контекста идентификаторы.
- Создание файла псевдоним, который связывает каждый идентификатор раздела с раздела.
- Компиляция этих файлов в формате HTML Help Workshop в единый сжатый файл HTML (*.chm).
- Добавление пути к Файл справки Свойство образца формы.
- Присвоение кодов контекстов в форму и элемент управления на форме.
- Тестирование формы.
Результатом
является форма, на которой можно нажать F1 во время работы конкретного
текстового блока, чтобы получить определенный раздел справки. Нажав
клавишу F1 в любом месте в форме отображается раздел справки, главной
формы. Создание сжатого файла HTML с контекстной справки, выполните следующие действия.Создание HTML-файлов- Нажмите кнопку Начало, выберите пункт Программы, выберите пункт Семинар по HTML-справки, а затем нажмите кнопку Семинар по HTML-справки.
- На Файл меню, нажмите кнопку Новый. Нажмите кнопку Проект, а затем нажмите кнопку ОК. Назовите новый проект MyProject.
- На Файл меню, нажмите кнопку Новый.
- Нажмите кнопку HTML-файл, а затем нажмите кнопку ОК.
- В Заголовок HTML диалоговое окно, тип Форма справки, а затем нажмите кнопку ОК.
- Между<body>теги, тип<b00></b00></body>Это раздел справки для формы.
- На Файл меню, нажмите кнопку Сохранение файла. В Сохранить как Появится диалоговое окно.
- Сохраните файл с именем Test1.htm.
Запишите или запомните папку, в которой сохранен этот файл.
- Закройте файл Test1.htm.
- На Файл меню, нажмите кнопку Новый.
- Нажмите кнопку HTML-файл, а затем нажмите кнопку ОК.
- В Заголовок HTML диалоговое окно, тип Справка программного обеспечения управления, а затем нажмите кнопку ОК.
- Между<body>теги, тип<b00></b00></body>Это раздел справки для элемента управления.
- На Файл меню, нажмите кнопку Сохранение файла. В Сохранить как Появится диалоговое окно.
- Сохраните файл с именем Test2.htm.
Запишите или запомните папку, где был сохранен файл.
Создание файла карты- Нажмите кнопку Добавление и удаление файлов разделов Нажатие кнопки. Это вторая кнопка вниз Проект Вкладка.
- Добавление двух файлов, созданных ранее: Test1.htm и Test2.htm.
- Нажмите кнопку Начало, а затем нажмите кнопку Запустить.
- В Открыть поле типа Блокнот, а затем нажмите кнопку ОК.
- В Блокноте введите следующие строки:
# define 1 1001 # define 2 2001 - На Файл меню, нажмите кнопку Сохранить как.
- В Тип файла Измените тип Все файлы.
- Введите имя файла MAP.h, а затем нажмите кнопку Сохранить.
Создание файла псевдонимов- В программе «Блокнот» нажмите кнопку Новый В меню Файл меню.
- Введите следующие строки:
1 = test1.htm; 2 = test2.htm; - На Файл меню, нажмите кнопку Сохранить как.
- В Тип файла Измените тип Все файлы.
- Введите имя файла Alias.h, а затем нажмите кнопку Сохранить.
Компиляция единый сжатый файл HTML- В HTML Help Workshop, нажмите кнопку для Интерфейс API-Интерфейс HTMLHelp. Это четвертая Кнопка вниз на левой стороне Проект Вкладка.
- На Карта Щелкните Файл заголовка.
- Нажмите кнопку Обзори затем перейдите к файлу Map.h, созданный ранее в программе «Блокнот».
- Выделите Map.h и нажмите кнопку Открыть. Обратите внимание, что вы видите # include Map.h в списке.
- Нажмите кнопку Псевдоним вкладки, а затем нажмите кнопку Включить.
- Нажмите кнопку Обзори найдите файл Alias.h, созданный ранее в программе «Блокнот».
- Выделите Alias.h и нажмите кнопку Открыть. Обратите внимание, что вы видите # include Alias.h в списке.
- Нажмите кнопку ОК.
- На Файл меню, нажмите кнопку Компиляция.
- Компиляция файл справки, как MyProject.
- Убедитесь, что создан файл MyProject.chm и запишите или запомните его местоположение.
Добавление пути- В Microsoft Access создайте новую базу данных с именем Database1.mdb. Создайте в том же месте, где был создан файл справки.
- В файле Database1.mdb создайте следующую форму:
Form: Test1
-----------------
Caption: TestForm
Text Box
------------
Name: Field1
Text Box
------------
Name: Field2
- В представлении «Дизайн» выберите форму, а затем на Представление меню, нажмите кнопку Свойства.
- Нажмите кнопку Другие Вкладка.
- Установка Файл справки Свойство MyProject.chm.
Присвоение кодов контекстов- Установка Идентификатор справки Свойства формы 1001, а затем нажмите кнопку ОК.
- Выберите элемент управления, поле2, а затем на Представление меню, нажмите кнопку Свойства.
- Нажмите кнопку Другие Вкладка.
- Установка Идентификатор справки свойство элемента управления поле2
Кому 2001. Нажмите клавишу ВВОД.
Тестирование формы- На Представление меню, нажмите кнопку Режим формы.
- Нажмите кнопку Поле1
управлять и нажмите клавишу F1. Обратите внимание, что появляется
раздел формы. Это обусловлено тем, что не имеет соответствующего раздела
и следовательно, по умолчанию в разделе Общие формы управления Field1.
- Закройте раздел справки.
- Нажмите кнопку Поле2 управлять и нажмите клавишу F1. Обратите внимание, что отображается раздел для управления поле2.
|