Заметил у Влада в блоге пост посвящённый созданию chm-справки с помощью Html Help Workshop и решил рассказать о своём опыте. Тем более что, в начале этого года я попробовал кучу редакторов для создания справки к программам и нашёл подходящий далеко не сразу. Сначала я хотел написать мини-обзор программ для создания chm справки, но при написании поста вдруг понял, что даже забыл какие из программ я тестировал, поэтому просто опишу историю написания хэлпа.
Одним весенним днём в наш программерский барак заглянуло начальство и сказало: "нужно сделать хэлп и интегрировать его в наши программы.". "Будет сделано!", дружно ответили программисты и устроили совещание. В ходе совещания были выявлены следующие типы справки:
- WinHelp (старая добрая справка с расширением .hlp)
- Html Help 1.x (.chm - Compiled Html Help)
- Html Help 2.x (освновное расширение файла - .hxs) - формат справки использующийся в Visual Studio и последних версиях Delphi. Да, это та самая справка котороая так раздражает большинство пользователей, привыкших к быстрой и точной справке в старых версиях Delphi.
- MS Help Viewer 1.0 - справочный движок для Visual Studio 2010. Выступает как замена формату MS Html Help 2.x. Самый новый.
- Windows Vista Assistance Platform Help - вообще, этот формат мы даже не рассматривали. Просто он попался мне на глаза на сайте Helpware при написании поста и я решил его упомянуть.
- Html, PDF и другие. В принципе, при нажатии F1 можно делать всё что угодно, в том числе открывать любые документы и вызывать любые программы. Так что, теоретически можно использовать и Html и Pdf и даже .doc-файлы. Другое дело, что организация поиска, просмотр содержимого и контроль за окном справки остаются на совести автора программы. Эти варианты мы всерьёз не рассматривали.
WinHelp мы решили не использовать как устаревший. К тому же программа для просмотра WinHelp файлов более не включается в состав Windows Vista и её требуется устанавливать отдельно (см. KB917607). Форматы MS Html Help 2.x и MS Help Viewer - предназначались только для Visual Studio, поэтому нам не подошли. Да и скажу честно, как человек привыкший к моментальному открытию справки в формате WinHelp и Chm, я так и не привык к тормозам справки Help 2.x в Delphi 2009/2010.
Вообще, ситуация выглядит довольно забавно, ведь оставшийся Html Help 1.x не поддерживают юникод на 100%. Хотя технически и возможно писать текст странички справки на нескольких языках, но полнотекстовый поиск и содержание будут работать корректно только с одним языком. Тем не менее, что-то же всё-таки надо выбрать, поэтому мы остановились на Html Help 1.x.
Далее мы стали искать удобный редактор для написания Chm Help-a в пределах 100$. Здесь стоит отметить, что изначально мы не знали о том, что Chm не поддерживает юникод полностью, поэтому наши тесты включали в себя создание в редакторе пары страниц, содержащих как русские так и латышские символы. Многие продукты вообще отказались генерировать справку для языка отличающегося от установленного на компьютере по умолчанию. Часть программ теряла латышские буквы, в заголовках страниц и содержании.
К сожалению, сейчас я не могу вспомнить все опробованные инструменты. Точно могу сказать, что смотрел Helpinator и HelpNDoc и они не прошли тестов. Такие продукты как InnovaSys HelpStudio (448$), Adobe RoboHelp (899$), Help&Manual (от 349$) мы не рассматривали из-за цены.
А остановили мы свой выбор на бесплатной программе для создания справки HelpMaker. Я опишу HelpMaker в следующем посте.
Также, мы вообще не рассматривали конвертеры, такие как Word2Hlp (OneClickHelp) или Word-2-Chm, заранее решив, что автоматически преобразовать Word-документ в chm ровно не сумеет никто. Как мне кажется сейчас, это было не самое разумное решение, и всё-таки следовало провести хотя бы пару тестов. Возможно, именно эти продукты позволили бы нам сэкономить кучу времени, потраченного на переформатирование статей.
Для интеграции справки в наши программы мы использовали юниты hh.pas и hh_util.pas с сайта http://helpware.net/delphi/. Там же доступен подробный туториал, описывающие теорию и практику работы с chm-справкой на самым низком уровне. Как это часто бывает, нигде в туториале не описаны базовые Delphi-классы-интерфейсы для интеграции справки в программу из юнита HelpIntfs.pas.
Ссылки по теме
- За и против Winhelp-а в Вики Help&Manual (англ.)
- Документация по Microsoft HTML Help 1.4 на сайте MSDN
- Microsoft HTML Help Downloads
- Скачать последнюю бесплатную версию HelpMaker - программы для создания chm справки.
- HelpWare.Net(англ) - сайт посвящённый справке. Я рекомендую начинать поиск любой технической информации о справке именно с этого сайта. Там есть FAQ-и по всем форматам справки. Там есть Tutorial по интеграции Chm-справки в Delphi-программы, там есть даже .pas-файлы, для работы с chm-справкой. Авторы этого сайта, являются авторами самого мощного инструмента для работы с файлами справки - FAR Help Manager. Несмотря на громкое название, думаю стоит уточнить, что FAR Help Manager не предназначен для написания справки и не содержит в себе удобных WYSIWYG-редакторов.
- Help-info.de (англ) - сайт посвящённый справке
- Темы посвящённые созданию справки на форуме SQL.RU: Тынц
- Не знаю как вам, а мне очень интересно посмотреть на продукты конкуренты Delphi. Например на MS Visual Studio 2010, и поэтому я иногда просматриваю блог о MS VS2010.
Покупая программы по моим партнёрским ссылкам, вы помогаете мне поддерживать блог.
Версия для мобильного

6 человек заметили этот пост: