Search
Write a publication
Pull to refresh

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

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

Требования от шефа были такие: всё в одном файле, наличие развитой навигации, защита от копирования текста для усложнения создания бомб студентами. В качестве примера имелось какое-то пособие в формате 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 верстку. Первый путь платный, второй трудоемкий. Надеюсь, мой опыт будет кому-то полезен.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.