Two Pilots™    Главная  |  Навигация  |  Программы  |  Скачать  |  Купить  |  Поддержка  |  Издателям  |  OEM

Блог компании Два Пилота

обсуждение разных тем

Архив за Январь, 2010

Новый PDF редактор

Январь 29, 2010

25 января наша компания выпустила программу PDF Maker Pilot -  новый визуальный редактор для создания электронных PDF форм и PDF документов с различными графическими объектами. Разработчики, Татьяна Орловская и Александр Григорьев, работали над проектом в течение года. Новая программа – это улучшенная версия ранней программы PDF Maker Pilot.

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

В ближайших планах – добавить взаимодействие с базой данных. База данных будет содержать текстовую и графическую информацию (например, цифровые подписи) пользователя. Планируется обеспечить возможность автозаполнения бланков данными из базы, многократное заполнение бланков.

Надеемся, что теперь создавать любые PDF документы с помощью PDF Maker Pilot будет просто и приятно. Желаю всем пользователям только положительных эмоций во время работы с нашей программой!

Посетите страничку программы PDF Maker Pilot.

Артем Голубниченко
Руководитель проекта Виртуальный Принтер

Недокументированные возможности вывода текста в EMF

Январь 26, 2010

До недавнего времени в нашей PDF библиотеке «PDF Creator Pilot» была нерешенная проблема с выводом вертикального текста в EMF файлах. В большей степени это было связано с тем, что EMF-record, выводящая этот текст была недокументированной. Впрочем, сейчас Microsoft выпустила полную документацию по формату EMF, но ещё раньше это появилась на ресурсе www.undocprint.org. Все это вместе и помогло разрешить проблему.

Проблема изначально заключалась в том, что текст по вертикали выводился не совсем корректно. Он очень сильно сжимался, и буквы накладывались друг на друга.  Поэтому изначально было подозрение, что граничный прямоугольник (rclBounds) для вывода текста рассчитывается неверно. Как в последствии оказалось,  в этом и заключалась проблема. Опишу немного технических деталей, которые выяснились при вскрытии проблемы.

Во-первых, из формата  EMF нами была получена необходимая информация по записи EMR_SMALLTEXTOUT (сам текст, rclBounds и т.д.).

Во-вторых, как выяснилось, размеры rclBounds рассчитывались верно. Но загвоздка заключалась в том, что он не был повернут на 90′. Почему на 90′? Потому что когда текст выводится по вертикали, то в структуре LOGFONT, отражающей настройки шрифта,  – это  фиксируется в полях lfEscapement и lfOrientation. И поэтому после того, как это было определено, необходимо ещё и rclBounds также повернуть на 90′. И тогда текст стал выводиться верно.

Резюмируя, скажу, что проблема была в том, что из EMF передается не повернутый на 90′ rclBounds. Поэтому для корректного вывода текста оставалось его только повернуть на нужный угол. Ниже попытаюсь показать это на рисунках (специально выделю rclBounds, чтобы было нагляднее).

Граничные прямоугольники

Граничные прямоугольники

Исправленную версию PDF библиотеки можно загрузить здесь.

Также наглядно можно посмотреть PDF документ до исправления и PDF документ после исправления, соответственно.

Артем Голубниченко
Руководитель проекта Виртуальный Принтер