Как стать автором
Обновить

Электронный учебник: что может быть проще?

Как сделать электронный учебник? Еще неделю назад, услышав такой вопрос, я бы снисходительно улыбнулся. То же самое, наверняка, сделали сейчас и вы. Но тут, как оказалось, тоже бывают подводные камни.

Требования от шефа были такие: всё в одном файле, наличие развитой навигации, защита от копирования текста для усложнения создания бомб студентами. В качестве примера имелось какое-то пособие в формате EXE. Но мне показалось глубоко неестественным городить ради данной задачи экзешник, который при скачивании из интернета здорово смахивал бы на вирус, и я выбрал CHM.

Собственно, с созданием CHM-файла никаких проблем не было. Использовалась программа Chm2htm с предельно простым интерфейсом, которая берет пачку перелинкованных веб-страниц на входе и выдает CHM-файл на выходе. Переверстывать сотнестраничные вордовские документы в html мне было влом некогда, и веб-страницы делались прямо в Word. Защита от копирования, просмотра кода и прочее огораживание получается добавлением нескольких атрибутов в body.
<body oncontextmenu="return false" ondragstart="return false" onselectstart="return false">


Единственный замеченный здесь подводный камень проявляется, когда кто-то скачивает учебник из сети. Как известно, Windows по умолчанию и, так сказать, «молча» отключает все скрипты в CHM-файле, если он получен с другого компьютера. В нашем случае это приводило к тому, что страницы вообще не отображались. Поскольку просить всех пользователей лезть в свойства файла и разблокировать его совсем уж неприлично, проблему решили запаковкой файла в ZIP-архив. Хотя, конечно, тоже костыль и не гарантия.

Впрочем, старались мы зря: внезапно объявили, что учебники на сайт университета принимаются только в PDF. Прощай, пагинация, здравствуй, простыня с внутренними якорями. Первым делом я попробовал создать PDF-документ средствами самого Word-2010. Плюсы: полная идентичность с исходным документом, работоспособные гиперссылки и ссылки на элементы структуры. Минусы: нельзя включить защиту от копирования и задать начальный режим отображения документа.

Вторым делом я начал перебирать разные генераторы PDF, работающие в режиме принтера, которых несть числа, которые друг на друга очень похожи, из которых самый известный, наверное, PDFCreator. Плюсы: идентичность исходному документу на высоте, куча настроек отображения и безопасности. Минусы: ссылки в документе не работают. Вообще. Не только т.н. содержание, но и обычные гиперссылки.

Третьим делом я набрел на редактор PDF Nitro Pro и он, наконец, решил мою проблему. Созданный в Word документ PDF затем открывается в Nitro и пересохраняется с необходимыми свойствами безопасности. Минус: программа платная с триалом на две недели. Ни одного бесплатного аналога ее (в плане создания документов, а не конвертации) я не нашел, и поначалу меня это сильно удивило.

Удивлять меня это продолжало, пока я не открыл Open Office Writer и не понял, что это реальный PDF-комбайн. Без преувеличения — его функционала в части создания PDF хватило бы на целую отдельную программу. Все необходимые мне настройки безопасности там присутствовали. Минус: неполная идентичность отображения документа, созданного в Word. Второй минус — совершенный кошмар со структурой документа, до такой степени, что проще ее вообще не создавать. К тому же, ссылки на элементы структуры все равно при экспорте съедаются. Зато гиперссылки работают отлично.

Итог: превратить документ Word в PDF-файл с работающими ссылками и настройками безопасности можно двумя путями. Первый: создать PDF-файл в Word и отредактировать настройки в Nitro Pro. Второй: создать PDF-файл в Writer, предварительно вручную сделав в нем все необходимые гиперссылки и подправив съехавшую после Word верстку. Первый путь платный, второй трудоемкий. Надеюсь, мой опыт будет кому-то полезен.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.