Создание качественного PDF-файла из документа Word с закладками на русском языке возможно.

Доказано JawsSystems,

Британия: сделано с умом.

Автоматически создать структурированный и снабженный перекрестными ссылками документ в формате PDF можно не только в различных развитых программах верстки, но и в Microsoft Word. Существует два стандартных решения: фирменное, предложенное создателями формата PDF, и альтернативное, выполненное программистами из Кембриджа.

Способ организации PDF-файла следует выбирать, исходя из поставленной задачи, так как существует несколько способов представить качественную публикацию в этом формате. В простейшем случае, когда объем документа не превышает одного-двух листов и не содержит перекрестных ссылок, допустимо использовать бесплатное ПО для формирования PDF-файлов на основе распечатки в формате PostScript (PS). Такой файл можно создать при помощи драйвера PostScript от Adobe или драйвера любого PS-совместимого принтера, перенаправив вывод в файл в стандартном диалоговом окне печати. Получившийся таким образом документ конвертируется в PDF как бесплатными программами вроде GhostScript/GSView, так и одной из платных утилит, например программой Acrobat Distiller, распространяемая вместе с программами верстки фирмы Adobe. Главный недостаток такого способа состоит в том, что результатом этих манипуляций будет вполне переносимый, но не структурированный документ, своего рода виртуальный аналог бумажной распечатки.

Ни одна программа автоматического преобразования PostScript в PDF не позволяет снабдить документ содержанием и перекрестными ссылками исходного текста, если предварительно об этом не позаботилась утилита, генерирующая промежуточный формат — PostScript. В развитых программах верстки, например во FrameMaker, такая возможность существует. Программа Microsoft Word не имеет встроенных средств логической разметки печатаемого в PostScript документа, тем не менее существует как минимум два решения для автоматизации создания структурированного и снабженного перекрестными ссылками PDF-документа из Word.

Фирменное решение

Большинство программ верстки (Adobe FrameMaker, PageMaker, QuarkXpress) напрямую поддерживают генерацию PostScript с использованием оператора pdfmark, позволяющего сохранить логическую разметку и перекрестные ссылки при конвертировании PS->PDF. Другими словами, эти программы изначально обладают средствами анализа оглавления, указателя и других перекрестных ссылок документа, чтобы генерировать входной поток PostScript-данных для так называемого дистиллера, который в свою очередь преобразует получившийся структурированный PostScript в не менее структурированный PDF.

Макрос же, выполняющий аналогичные функции в Microsoft Word, поставляется фирмой Adobe только в составе пакета Adobe Acrobat. Считается, что эта компания, как разработчик обоих названных выше форматов, имеет наиболее развитые средства для генерации структурированных PDF-файлов и их редактирования, вплоть до создания заполняемых и сохраняемых форм в формате PDF. Этот пакет, названный Adobe Acrobat, стоит немалых денег (около 250 долл.). Даже на Западе подобные затраты обычно позволяет себе лишь пресс-центр корпорации или издательство, делающее бизнес на создании публикаций в формате PDF и на подготовке демонстрационных CD-ROM.

Для пользователей Word макрос PDF Maker фирмы Adobe по сути выполняет все основные функции. Сама по себе программа Acrobat служит, скорее, для доводки PDF-файла: можно добавить пару ссылок, отредактировать тот или иной элемент оглавления и т.д.

Таким образом, для того чтобы из документа Word создать правильный PDF-файл с помощью средств фирмы Adobe, придется приобрести продукт за 250 долл. Не слишком ли это много для макроса? Пожалуй, все-таки многовато. Тем более что существуют и более дешевые аналоги. Открытость стандартов PS и PDF, а также документ, описывающий оператор (Adobe Technical Note number 5150), привели к тому, что на рынке появились неплохие разработки различных фирм и даже проекты с открытым исходным текстом.

Альтернативное решение

Как водится в таких случаях, образовавшуюся нишу заполнила небольшая фирма с более дешевым аналогом пакета Acrobat. Программу Jaws PDF Creator разработали специалисты из Кембриджа, она позиционируется как альтернатива Adobe Acrobat для использования на PC- и Mac-платформах. Стоит эта программа около 50 долл. Она содержит:

  • аналог программы Adobe Distiller под названием Jaws to PDF;
  • макрос для Microsoft Word;
  • макрос для PowerPoint.

Так же как и Acrobat Distiller, программа PDF Creator обрабатывает файлы печати, сгенерированные драйверами PostScript фирм Microsoft, Apple или Adobe. Для платформы Windows создатели программы рекомендуют использовать драйвер компании Microsoft.

Когда устанавливается версия для Windows, то автоматически инсталлируется и макрос для генерации PDF — одним щелчком мыши на значке Jaws PDF Creator, которая становится доступна на основной панели инструментов программ Word 97, Word 2000, PowerPoint 97 и PowerPoint 2000.

По идее, такую возможность можно было бы расширить на FrameMaker и PageMaker, но эти программы способны самостоятельно позаботиться о разметке PostScript оператором pdfmark при выполнении процедуры создания PDF.

Таким образом, Jaws PDF Creator рекомендуется в первую очередь пользователям Word. Любители же более специализированных пакетов компьютерной верстки по тем или иным причинам предпочтут Acrobat, особенно в тех случаях, когда финансовый вопрос решается по принципу: «и мы не лыком шиты — взломаем». Однако то же можно сказать и про Jaws PDF Creator. В любом случае, по моим наблюдениям, в программе Word макрос последнего работает быстрее.

Русификация Adobe Distiller

Пользователи нелокализованных продуктов фирмы Adobe, возможно, замечали, что при генерации PDF оглавление русскоязычного документа имеет место быть, но буквы там не совсем русские. На сайте поддержки российских пользователей продуктов фирмы Adobe мне удалось найти ссылку на файл prologue.ps, который решает проблему, будучи скопирован в папку .Data каталога программы Adobe Distiller (дабы заменить там одноименный файл).

В случае, когда существующий prologue.ps уже содержит другие необходимые вам операторы, следует вставить в его начало содержимое файла prologue.txt. Но такая ситуация встречается крайне редко.

Официальные рекомендации по решению данной проблемы ищите на форуме поддержки сайта «Adobe в России» по адресу http://www.adobe.ru/forum/f_acrobat26.html (вопросы № 01 — 47).

Русификация Jaws PDF Creator

Аналогичным образом решается проблема русификации Jaws PDF Creator. Для корректного отображения кириллицы в закладках файлов, генерируемых программой, перепишите файл http://www.adobe.ru/forum/bookmarkpath.zip и распакуйте его в каталог C:Program Files JawsSystems Jaws PDF Creator Default (можно предварительно создать копию уже имеющегося там, но мне, например, она ни разу не понадобилась).

* * *

Подводя черту под сказанным, еще раз отмечу, что выбор средств создания PDF-публикаций зависит от стоящей перед вами задачи. Обыкновенная статья с математическими выкладками может быть обработана при помощи программы PDF Maker из Word, но стоит ли стрелять из пушки по воробьям, если существуют более дешевые и даже совсем бесплатные решения?

Другая крайность — использование LyX и утилиты latex2pdf, но это путь камикадзе, который годится только для тех, кто решил перейти на Linux. Если у вас много свободного времени и терпения, рискните. Но тем, кому некогда, можно смело рекомендовать Jaws PDF Creator с русифицированным файлом prologue.ps.

Об авторе

Николай Колдыркаев — инженер-программист, сотрудник ОАО «ЮГ СИСТЕМА плюс», http://www.jugsys.ru

С автором можно связаться по адресу: Open2000@Front.Ru


Информационные ресурсы

Adobe Acrobat http://www.adobe.com/Acrobat/

Jaws PDF http://www.jawspdf.com

APFL GhostScript http://www.ghostscript.com


Защита PDF от пиратского тиражирования

Самый распространенный способ защиты электронных документов в формате PDF — использование схемы шифрования, предложенной компанией Adobe. Метод позволяет шифровать некоторые объекты документа (строки и потоки) с помощью алгоритма, использующего симметричный блочный шифр RC4 (собственность RSA Data Security).

Создание и открытие защищенных документов в Adobe Acrobat предполагает применение так называемого обработчика защиты (security handler). Это либо часть самой программы Acrobat (standard security handler), либо предоставляемое сторонними разработчиками расширение к нему (plugin). В задачи любого обработчика защиты входят:

  • распознавание (authentication) пользователя, например, посредством проверки пароля, ключевого файла, магнитной карты и т.д.;
  • предоставление пользователю определенных прав для доступа к документу, в частности возможности вносить в него изменения, печатать и т.д.;
  • вычисление ключа для шифра RC4, который будет применяться для шифровки документа, а так как RC4 - симметричный шифр, то этот же ключ будет использоваться и для расшифровки.

Встроенный в Acrobat обработчик защиты может связать с документом пароль пользователя и владельца, который позволяет назначать права доступа к файлу. Причем длина ключа для шифровки документа может варьироваться от 40 до 128 бит. Обработчики защиты, предлагаемые сторонними компаниями, дают возможность задействовать любой другой алгоритм аутентификации пользователя, но никаких изменений непосредственно в способ шифровки документа не вносится.

Как выяснилось, описанная схема защиты имеет свои недостатки. Так, если автор электронного документа применяет встроенный обработчик защиты и желает лишь как-то ограничить право доступа к содержимому своего творения (например, запретить распечатку, копирование, редактирование текста и т. п.), то он вынужден будет заставлять пользователя каждый раз при открытии файла вводить назначенный ему пароль. В этом случае благодаря подробной документации, описывающей формат PDF, значение ключа для расшифровки легко вычисляется на основе содержимого самого документа. Нет никакой необходимости знать пароль владельца: существует множество программ, использующих этот прием для снятия защиты (например, Advanced eBook Processor, написанная Д. Скляровым и скандально известная благодаря иску Adobe к компании-разработчику ElcomSoft). Человек, поставивший перед собой такую задачу, без труда найдет множество высокооптимизированных программ, позволяющих производить эффективный перебор (brute-force attack) всех возможных значений ключа шифрования или использующих вместо грубого перебора заранее заданную последовательность (dictionary attack) осмысленных слов (в частности, это обеспечивает Advanced PDF Password Recovery компании ElcomSoft).

На современных компьютерах, по заявлениям разработчиков Advanced PDF Password Recovery, документ, зашифрованный 40-битовым ключом, можно «взломать» за три-четыре дня. Перебор всех значений 128-битового ключа займет несравнимо больше времени. Если снятием защиты, например от копирования, заинтересовался профессиональный взломщик, то при использовании любого обработчика защиты, даже с применением наидлиннейшего ключа для шифрования, можно получить незащищенный документ и впоследствии его тиражировать при наличии хотя бы одной лицензионной копии. Кстати, обладателем копии может быть и сам взломщик. При любом обработчике защиты Acrobat расшифровывает документ с помощью ключа, а исполняемый код программы Acrobat слабо защищен от модификации и от того, что он может быть исследован взломщиком (методы reversing-engineering). Таким образом, злоумышленник имеет возможность подглядеть в нем ключ для расшифровки лицензионной копии документа и потом употребить его в своей программе для взлома. Так как алгоритм шифрования PDF-документов, используемый Adobe, широко известен (хотя алгоритм, использующий 128-битовый ключ, официально считается неопубликованным из-за экспортных ограничений законодательства США), подобную программу для расшифровки PDF-документов написать вполне реально.

Таким образом, главный недостаток описанной схемы защиты — это то, что для отображения защищенного документа обработчик защиты должен передать ключ для расшифровки документа «в руки» Acrobat, где взломщик средней квалификации сможет спокойно списать ключ и с его помощью получить незащищенную копию документа. Можно даже обойтись без самостоятельной расшифровки и просто собрать расшифрованные Acrobat части документа в его незащищенный эквивалент.

Но не все так плохо, как кажется на первый взгляд.

Можно попробовать воспользоваться защитой PDF-документов, разработанной компанией StarForce PDF Copy Protection. Предлагаемая ею защита не полагается ни на какую поддержку со стороны Acrobat — она подключается к нему в виде расширения. Для каждого защищаемого документа по уникальному алгоритму генерируется своя собственная процедура шифрования, используемая для засекречивания всего данного документа, который затем помещается в файл-контейнер. Топологию этого контейнера может понимать только ядро защиты StarForce, остающееся непробиваемым для хакерских атак уже в течение нескольких лет. Оно содержит сгенерированные процедуры для расшифровки документов и поставляется в виде библиотеки DLL вместе с набором защищенных документов и программой установки модуля защиты, автоматически запускаемой при первом открытии защищенного документа.

Перехват чтения документа происходит еще до того, как Acrobat приступит к работе, и программа самостоятельно произведет расшифровку, интерпретацию и отрисовку на экране запрошенного фрагмента. Благодаря такой независимости StarForce PDF Protection абсолютно свободна от недостатков схемы, предлагаемой Adobe.

Открыть засекреченный документ можно только при его расшифровке защитным ядром, которое откажется работать, если в компьютере пользователя не будет обнаружен лицензионный компакт-диск. Для привязки набора документов к компакт-диску используются характеристики, уникальные для данной партии носителей и не воспроизводимые в домашних условиях. Пользователю нет необходимости запоминать и вводить пароль при открытии защищенного документа, достаточно лишь открывать его при наличии в компьютере лицензионного диска. Тогда после быстрого обращения к CD-ROM пользователь получит доступ к содержимому выбранного файла. Так документ оказывается надежно защищенным, например от пиратского тиражирования.

Е. Т.