понедельник, 5 мая 2008 г.

Печать в EMF: PrintMirror, Leadtools ePrint и другие программы для печати в EMF и конвертации векторных форматов

PrintMirror

PrintMirror [A print viewer utility by Vipin Aravind[1]] – крохотная бесплатная программка (28 Кб дистрибутив) с открытым исходным кодом и просто потрясающей возможностью: она позволяет автоматически извлекать .EMF-векторный рисунок для каждой отправленной на печать страницы из спула любого PostScript-принтера!!!! Причём получается сразу векторный рисунок маленького размера, но очень высокого качества (которое, правда, определяется той программой, из которой печатают. Наилучшие результаты достигаются при печати из программ Microsoft, AutoCad и VariCAD, Corel WordPerfect, Adobe Designer, QuarkXPress, RagTime Solo, wxMaxima и Mathematica, поскольку они не конвертируют текст в кривые при выводе на печать и не инсталлируют временные шрифты, как Acrobat; последнее приводит к тому, что после их автоматической деинсталляции при закрытии Acrobat при просмотре полученного .EMF-рисунка вместо отсутствующих временных шрифтов подставляется шрифт по умолчанию - Arial): сохраняется вся исходная информация, буквы не конвертируются в кривые, рисунок имеет маленький размер и прекрасно отображается в любой программе просмотра изображений (IrfanView, ACDSee, Brewing's View), импортируется и хорошо отображается в Microsoft Word, Power Point и т.д.!!! Очень долго искал программу с такими возможностями, перепробовал все маститые векторные пакеты, и наконец обнаружил программку размером в 28 Кб (!), которая делает это лучше их всех! Оказывается, создание таких файлов является вполне естественной функцией Windows (такой файл автоматически создаётся Windows всякий раз, когда вы печатаете), только глубоко запрятанной и долгое время являвшейся тайной за 7-ю печатями! Только недавно тайна этой очень важной недокументированной возможности Windows была раскрыта индийским программистом Vipin Aravind (см. ссылки на его статьи на странице программы) и стала доступной для всеобщего удовольствия благодаря его крутой программке! Работает программа только под Windows 2000 и XP. Кроме того, утилиту можно использовать для предпечатного просмотра страницы перед отправкой на печать из программ, не имеющих такой функции.

Вообще, надо признать, что не абсолютно все программы при выводе файла на печать создают .EMF-рисунок, и он не обязательно идентичен PostScript-векторному рисунку, создаваемому при выборе опции "Печать в файл". Это особенно заметно при печати из Acrobat: в .PS-файле, получаемом при выборе опции "Print to file", весь текст присутствует в виде текста, буквы не конвертированы в кривые, поэтому из Acrobat вполне можно напечатать PDF-файл на любой виртуальный принтер, принимающий PostScript, например на принтер Acrobat Distiller, docPrint PDF Driver, PrimoPDF, CutePDF, PDF995 (последние три используют GhostScript, но по-разному), и эти программы сгенерируют из выводного файла Acrobat прекрасный свой собственный PDF, в котором текст не конвертирован в кривые. Однако извлекаемый PrintMirror .EMF-рисунок оказывается на порядок большего размера, чем должен быть, и все русские буквы в нём конвертированы в кривые (цифры и латинские буквы - не конвертируются, но в качестве шрифтов для них указываются временные файлы типа "ZTR4A.tmp", "ZTR4B.tmp", "ZTR4C.tmp" и т.д. находящиеся в директории %TEMP%, то есть шрифты, внедрённые в PDF-файл, и теперь временно инсталлированые в системе для печати данного документа. Эти файлы удаляются при закрытии Acrobat. Поэтому сразу после извлечения .EMF ДО закрытия Acrobat он отображается так, как и должен, а после закрытия Acrobat все шрифты при отображении сбрасываются на Arial в силу отсутствия в системе необходимого шрифта). Изменить такое поведение тонкой настройкой Acrobat не удалось - при изменении параметров по умолчанию, не важно в какую сторону, качество печати только падает (начинает конвертировать всё в растр и т.п.). Кроме того, в созданном Acrobat .EMF-рисунке линии границ таблиц (если таблицы есть в документе) печему-то неточно совпадают друг с другом, вылезают за пределы таблицы (хоть и не незначительно, и заметно это только на экране при некоторых масштабах отображения страниц документа), чего не наблюдается при печати таблиц из программ Microsoft.

Есть программы, которые при печати вообще не создают .EMF-рисунка.

Кроме того, некоторые виртуальные принтеры наоборот, принимают не PS-выводной файл, а только .EMF-рисунок, например: ClickBook, Solid Converter PDF, SVGmaker, Amyuni Document Converter, NitroPDF printer, VeryPDF.com PDFcamp Printer, FinePrint FinePrint и FinePrint pdfFactory Pro. (Причём FinePrint pdfFactory, Amyuni Document Converter и SVGmaker превращают при этом обычно все векторные рисунки в растровые низкого разрешения.)

К сожалению, все программы Adobe (кроме Adobe Designer, но он не всегда импортирует PDF правильно, как ни странно), а также CorelDraw конвертируют текст в кривые при выводе на печать в формате .EMF (к тому же, при печати из Acrobat английские шрифты сбрасываются на Arial). Мне удалось найти только две программы, способных печатать .PDF с высоким качеством без конвертации текста в кривые и растр:

3-Heights™ PDF Printer Shell Tool - не работает с кириллицей: все кириллические символы просто удаляются из выводного файла (программа позволяет задавать, кстати, в каком формате выводить файл на печать - PS или EMF);

Amyuni PDF Creator 2.0е - не вполне понимает кириллицу, особенно полужирныый курсив. Ничего не удаляет из документа, ничего не конвертирует в кривые, но часть символов превращаются в абракадабру или совсем непонятно что. Может быть, в будущих версиях эту проблему всё-таки решат, потому что именно так он и отображает документ на экране, как выводит его на печать...

УСТАНОВКА PrintMirror

Для установки программы необходимо, чтобы в системе уже был установлен какой-нибудь PostScript-принтер (не рекомендуется, но можно даже виртуальный, как у Acrobat Distiller или ACDSee Canvas X, хотя попытка привязать её к устанавливаемому по умолчанию порту Acrobat Distiller 7.0 приводит к ошибке - это можно обойти, выбрав создание нового порта такого типа на соответствующей странице мастера установки нового принтера). Если физического и виртуального принтера нет, можно установить входящие в поставку Windows дрова для любого PostScript принтера аналогично нижеследующей инструкции, а затем привязать PrintMirror к порту этого принтера, как описано ниже. Только порт надо выбрать реально существующий (LPT1 присутствует на любом компьютере), иначе это приведёт к неработоспособности PrintMirror. Распаковываем содержимое архива в любую папку (её потом нельзя будет переименовать или удалить, поэтому подумайте!), после чего в "Панели управления" -> "Принтеры" выбираем "Установка принтера", "Далее", убираем галочку "Автоматическое определение и установка принтера Plug&Play", "Использовать имеющийся порт", прокручиваем вниз список, и выбираем порт установленного в системе принтера (например, LPT1, на который я установил дрова для HP Color LaserJet 8500 PS из стандартной поставки Windows 2000. Этот драйвер "честно" работает с .EMF, в отличие от многих других, которые конвертируют весь текст в растр.), "Далее", "Установка с диска", указываем путь к папке, куда распакован дистрибутив программы, "OK", "Далее", "Далее", "Далее", "Далее", "Готово". Когда появится окно "Цифровая подпись не найдена. Продолжить установку?", нажать "Да", после появляется запрос "Необходим файл prntmrd.dll", надо снова указать путь к той папке, куда вы распаковали дистрибутив и нажать "OK".

При печати на PrintMirror после закрытия окна PrintMirror на принтер, к которому привязана эта программа, ОТПРАВЛЯЕТСЯ ПУСТАЯ СТРАНИЦА! Очередь печати вначале открывается, а потом сама закрывается, так что напечатанные документы в очереди не накапливаются! Но при использовании её на базе виртуального принтера типа Canvas X недостаток в том, что программа, на которую перенаправляется печать, будет запускаться каждый раз, как вы закроете окно PrintMirror.

Ещё одно замечание: если вы всё же напортачили с установкой этого драйвера, созданный принтер можно удалить через остнастку "Принтеры", если предварительно очистить очередь печати для него (пока не очистите, Windows его не удалит).

В общем, это программа MUST HAVE, и является, по меньшей мере, необходимым дополнением MS Office, а зачастую и просто уникальной утилитой, позволяющей обойти ограничения, навязанные производителями программного обеспечения и тестировать качество работы приложений!

Недостатки: при установке некоторых других драйверов виртуальных принтеров, а также реальных, может сбиваться настройка PrintMirror, и использовать их драйвера для извлечения .EMF-файла. Соответственно, качество генерируемого .EMF-файла может сильно снизиться. При удалении этих принтеров через папку "Принтеры" восстанавливается, и начинает работать нормально. Заметьте, что некоторые драйвера реальных принтеров создают .EMF-рисунок, в котором всё конвертировано в растр! Не стоит привязывать к ним PrintMirror. При печати из Acrobat русские буквы конвертируются в кривые, а английские шрифты оказываются сброшены на Arial после закрытия Acrobat (поскольку в самом файле для английских букв оказывается указан шрифт вроде "ZTR3F.tmp", то есть временный шрифт, который изначально был внедрён в .PDF-файл, а теперь временно инсталлирован в системе для печати данного документа).

Импортабельность создаваемых .EMF-файлов целиком зависит от программы, из которой печатают. При печати из Acrobat получаемый файл в CorelDraw, Canvas X и Illustrator не импортируется (в отличие от печати на LEADTOOLS ePrint IV). При печати из Word 2000 файл прекрасно импортируется в Illustrator и CorelDraw 12.


LEADTOOLS ePrint IV

LEAD Technologies LEADTOOLS ePrint IV – Программа размером 15,3 Мб и стоимостью $49 (однако в пробной версии функция печати в .EMF работает без ограничений, т.е. для этой цели она бесплатна). Отличительная особенность: при печати в .EMF и .WMF - получается файл большего размера (в котором каждая буква позиционирована отдельно), импортабельный в CorelDraw 12 и Canvas X (в отличие от файла, извлекаемого PrintMirror, который импортируется не всегда). При печати из Acrobat английские шрифты не сбрасываются на Arial после закрытия Acrobat (как в PrintMirror), и при импорте извлечённого рисунка в CorelDraw они, как это ни удивительно, правильно распознаются (но при импорте полученного при импорте в Illustrator – сбрасываются на Arial, что ещё раз подтверждает величие Adobe)!

При печати из таких капризных приложений, как Acrobat, приходится тонко настраивать обе программы, чтобы добиться минимально удовлетворительного результата. Чтобы русские буквы при печати из Acrobat конвертировались хотя бы в кривые, а не в растр, необходимо отключить опции "Auto-Rotate and Center" и "Choose Paper Source by PDF page size" в диалоге печати Acrobat и выставить в «умолчаниях» принтера LEADTOOLS ePrint IV (вкладка “Дополнительно” свойств принтера, кнопка “Умолчания”) такую же ориентацию страницы, как в текущем документе Acrobat. Кроме того, там же в "Emulate printer" должно быть выставлено "Leadtools ePrint IV Eval", т.е. сам этот принтер. Качество оконтуривания букв при печати из Acrobat здесь по умолчанию ниже, чем в файле, извлекаемом PrintMirror, поскольку LEADTOOLS ePrint IV «перелопачивает» выводимый приложением .EMF-файл с аккуратностью, зависящей от выставленного разрешения при печати (чем оно выше – тем больше точек будут содержать ломаные, которыми программа заменяет гладкие кривые). Его можно повысить до уровня не ниже PrintMirror, если в "Настройке печати" на вкладке Graphics выставить Resolution:Custom, и указать максимальное - 1600 DPI. Размер файла при этом возрастает на четверть ("Таблица" моя заняла 2 Мб, хотя PrintMirror извлёк её в виде 718 Кб - но последний не импортировался никуда и шрифт английских букв оказывался сброшен на Arial) за счёт увеличения количества точек ломаных, которыми аппроксимируются кривые выведенного на печать векторного рисунка (хотя в IrfanView файл отображается как бы имеющим меньший визуальный размер - но это определяется вовсе не точностью описания векторных объектов, а только размером рисунка, указанным в заголовке файла).

Эту уникальную программу можно даже использовать для преобразования неимпортируемых в CorelDraw файлов в импортируемые: для этого достаточно вставить .EMF-рисунок в Word, напечатать на "Leadtools ePrint IV Eval" (рекомендуется выставить разрешение 1600 dpi в свойствах принтера), и – вуаля! – получается рисунок гораздо большего размера, но прекрасно импортирующийся в CorelDraw!

Программа также умеет перенаправлять печать на любой другой принтер. Незарегистрированная версия при этом добавляет надпись на печатаемую страницу: "Leadtools e-Print Evaluation version. Однако на извлекаемый ей файл никаких надписей не добавляется!


Работа с .EMF-файлами

Масштабируемость

При печати из Word вставленных в него векторных рисунков качество передачи формы оконтуренных букв при выводе на печать нисколько не снижается, PrinMirror извлекает рисунок, ничем не отличающийся от оригинального при просмотре на большом увеличении. Я проделал следующий эксперимент: файл с оконтуренными русскими буквами вставил в Word 2000, уменьшил в 10 раз, напечатал на PrintMirror, извлечённый файл опять вставил в Word, увеличил в 10 раз и снова напечатал на PrintMirror. Последний извлечённый и исходный файлы я открыл в двух окнах WMFView на масштабе 10000%, сделал одно из окон полупрозрачным (утилита PowerMenu) и наложил изображения буквы “и” из разных файлов – контуры этой буквы в обоих случаях точно совпали друг с другом (в обоих случаях контур был искажён, но оба контура был абсолютно одинаковы). То есть Word работает с EMF-векторной графикой без подстав, и она сохраняет все свои преимущества, ради которых ею в первую очередь, и пользуются: масштабируемость без потери качества и малый размер.

Вообще, оценить качество векторизации букв можно только, открыв полученные рисунки в программе просмотра .EMF-файлов и рассмотрев под большим увеличением буквы "а" и и (русские) – они вследствие сложной формы искажаются в первую очередь при преобразовании в контуры, и могут служить критерием качества сгенерированного рисунка. Лучшая программа для цели просмотра на большом увеличении – крохотный бесплатный MetaFile Viewer (52 Кб-файл WMFview.exe) фирмы Square One, не требующий инсталляции. Эта программа позволяет задать масштаб отображения векторного рисунка хоть 1000000%, расходуя при этом поразительно незначительный объем оперативной памяти и совершенно не загружая процессор.

Хотя Word полностью поддерживает главное преимущество векторной графики - масштабируемость - при импорте её в такие приложения, как Canvas X ситуация складывается иначе: импорт происходит путём привязывания координат объектов векторного рисунка (букв, точек кривых и handles) к координатной сетке. Последняя может иметь больший или меньший шаг. Чем меньше шаг, тем более точно будет преобразован исходный рисунок, но и тем больше места результирующий файл будет занимать на диске. Обычно шаг сетки легко настраивается в самом приложении: в Canvas X это делается путём указания “Document unit” (варианты единиц: от миль до нанометров). Поэтому при импорте в Canvas X двух файлов с оконтуренными буквами: исходного и такого же, но уменьшенного в 10 раз первый будет преобразован во внутренний векторный формат Canvas X с гораздо большей точностью, чем второй. Это связано с тем, что для второго файла шаг координатной сетки окажется в 10 раз больше, поскольку размер рисунка выставлен в заголовке файла в 10 раз меньший…

Поворот рисунка на 90°

Программа EMFexplorer умеет поворачивать .EMF-рисунки. Однако сама она сохраняет в этом формате зачастую с ошибками, поэтому более надёжные результаты получаются, если напечатать рисунок из неё на PrintMirror. Однако на данный момент программа несколько сыровата (нельзя задавать ориентацию страницы, работает нестабильно).

Программы ClickBook и FinePrint FinePrint принимают EMF-вывод на печать из приложения и позволяют перенаправлять его на другой (реальный или виртуальный) принтер. У них есть полезные опции поворота изображения, а также размещения изображений нескольких страниц на одной. Поэтому с их помощью можно получать высококачественные векторные изображения страниц печатаемого документа, повёрнутых на углы, кратные 90º. Из этих двух программ безупречно качественно работает только ClickBook, несмотря на громоздкость и менее удобный интерфейс. Соответственно, можно напечатать .EMF-рисунок на ClickBook с помощью любой программы Microsoft Office (при этом не следует опасаться потери данных и искажения рисунка – см. ниже эксперимент с масштабированием; единственный недостаток такого метода – возможность появления ненужных пустых полей по границам рисунка). Кроме того, напечатать .EMF-рисунок без возможности задания ориентации страницы (по умлочанию она Portrait, и изображение будет масшабировано так, чтобы уместиться на странице – это может приводить к появлению пустых полей у рисунков, имеющих Lanscape-ориентацию) можно с помощью одной из следующих программ: EMFexplorer, WMFview.exe (см. выше, самая надёжная), EmfScope, PrintPic.exe. А уже в ClickBook указывать соответствующую опцию, и печатать на PrintMirror. Вероятно, этот путь на данный момент самый надёжный способ повернуть рисунок против часовой стрелки на 90°.

Кроме того, Microsoft PowerPoint XP/2003, Excel XP/2003, Word 2003, Visio 2002/2003, Publisher 2003 умеют поворачивать рисунок на 90° и выводить на печать в полностью векторном формате (хотя отображается файл после поворота иногда неправильно, выводится на печать он без повреждений). Встроенная в них собственная опция сохранения внедрённого рисунка в .EMF приводит к низкокачественному растровому рисунку внутри .EMF-файла, поэтому следует пользоваться печатью на PrintMirror вместо неё.

Поворот рисунка на произвольный угол

Самым надёжным способом поворота рисунка на произвольный угол на данный момент мне представляется следующий: вставить .EMF-рисунок в Microsoft Word и преобразовать в PDF именно с помощью плагина Acrobat PDFMaker 7 for Word (который устанавливается автоматически вместе с Adobe Acrobat 7.0 по умолчанию). Затем открыть полученный файл в Illustrator 12 или CorelDraw 13, выполнить все необходимые преобразования, и экспортировать в .EMF. Если напечатать в PDF любым другим способом, при импорте полученного файла в Illustrator весь русский текст конвертируется в контуры, а при импорте в CorelDraw 13 происходит несостыковка кодировок. Более ранние версии CorelDraw отказываются импортировать созданные таким способом файлы PDF.

Импортабельность

Проблема импортабельности векторных форматов - это целая песня. EMF-закрытый формат, поэтому полной поддержкой всех его фич обладают только программы компании Microsoft. К тому, же, Microsoft постоянно усложняет его, чтобы разработчики не могли реализовать в своих программах полную его поддержку (так же, как файловую систему NTFS). На данный момент существует 3 типа файлов EMF, причём только один из них содержит фиксированный набор типов записей, остальные - "расширяемые"[2]. Однако, похоже, EMF'ами с произвольно модифицируемой ("расширяемой") спецификацией только Microsoft, пока, и пользуется - например, при экспорте из PowerPoint и Visio[3]. "Лекарством" против "расширяемости" снова оказывается PrintMirror (и ePrint): при печати на виртуальные принтеры вся расширенная спецификация преобразуется к стандартной, понятной любому не-PostScript принтеру, для которого EMF-код при печати, собственно, и создаётся!

Единственная программа, которая извлекает из спула принтера высокосовместимые .EMF-файлы – это LEADTOOLS ePrint IV (см. выше). Рисунок, который неправильно импортируется в CorelDraw или вообще не импортируется, зачастую после вставки в Word и печати на этот виртуальный принтер превращается в полностью совместимый с CorelDraw. Причём удивительно, что .EMF-файл, созданный CorelDraw, зачастую импортируется в CorelDraw с ошибками, но после обработки таким способом импортируется уже без ошибок! Правда, ePrint иногда конвертирует некоторые буквы в кривые, но не по принципу принадлежности к языку. Зачем это делается, не вполне понятно.

Единственный известный мне универсальный способ импортировать .EMF-файлы в Adobe Illustrator или CorelDraw 13 – вставлять их в Microsoft Word, преобразовывать в PDF с помощью плагина Acrobat PDFMaker 7 for Word, после чего импортировать полученный PDF в Illustrator 12 или CorelDraw 13. Если напечатать в PDF любым другим способом, при импорте полученного файла в Illustrator весь русский текст конвертируется в контуры, а при импорте в CorelDraw 13 происходит несостыковка кодировок. Более ранние версии CorelDraw отказываются импортировать созданные таким способом файлы PDF.

Другой путь – открывать .EMF-файлы в программе EMFexplorer[4], затем помещать в буфер обмена (Edit ® Copy), после чего просто вставлять в CorelDraw (можно использовать “специальную вставку” в меню Правка). С Illustrator’ом этот фокус не проходит (у него убогая функция вставки содержимого буфера обмена).

Программы Microsoft умеют правильно импортировать и масштабировать любой .EMF-файл; при выводе его на печать из них не наблюдается потери информации и снижения качества рисунка (см. «Масштабируемость» выше).


Работа с PostScript-файлами

Для импорта PostScript-файла в CorelDraw 13 часто срабатывает следующий «финт ушами»: преобразуем его в .EPS-формат, затем импортируем в CorelDraw «как инкапсулированный PostScript» в виде объекта «EPS-file», после чего экспортируем полученный рисунок как .EPS (не забыв указать в свойствах экспорта пункт “Экспортировать текст как… текст” и подпункт “Включать шрифты”) и снова импортируем, но уже как редактируемый объект – и нередактируемый файл становится редактируемым, причём текст не конвертируется в кривые и все нестандартные символы сохраняются! Если шрифты теряются, то их сопоставления в процессе повторного импорта можно непосредственно указать.


Функция Paste Special… в CorelDraw
и приложения Microsoft

При наличии CorelDraw вовсе необязательно идти сложным путём с печатью на виртуальный принтер из приложений Microsoft. Можно просто скопировать интересующую вас страницу в соответствующем приложении Microsoft, а затем воспользоваться функцией Paste Special в меню Edit CorelDraw. В появившемся диалоговом окне надо выбрать Picture(Metafile), и нажать OK. Всё, что было выделено в приложении Microsoft, будет вставлено в CorelDraw как полностью редактируемый векторный рисунок, без искажений. Соответственно, после окончания обработки для вставки обработанного рисунка в Word эффективнее всего скопировать его в CorelDraw, а затем в меню Правка Word выбрать Специальная вставка…, Рисунок – и готово! В Word вставлен векторный рисунок, причём размер у него будет такой же, как у самого файла Microsoft, из которого он изначально импортировался в CorelDraw!

А вот с Canvas X и Adobe Illustrator этот фокус не проходит: у первого серьёзные глюки с этой функцией, а у второго её и вовсе нет!


Другие найденные мной программы
с возможностями PrintMirror

O&K Printer Viewer – позволяет открывать для просмотра спул-файлы (.SPL) и экстрагировать из них напечатанные страницы в виде .EMF-файлов. Просматривать выведенные на печать страницы можно с разным увеличением (чего нельзя делать в PrintMirror). Экстрагированный .EMF-файл оказывается большего размера, но в плане совместимости не отличается от файла, извлекаемого PrintMirror. Содержимое .SPL-файла можно перенаправить для печати на другой принтер. Дополнительно к экспорту метафайла, можно скопировать содержимое напечатанной страницы как векторный рисунок. Эта функция работает несколько иначе, чем экспорт в виде метафайла, и при вставке скопированного таким образом рисунка в CorelDraw получается иной результат (в любом случае часть информации теряется или искажается, но «по-божески»). Размер дистрибутива 2,11 Мб. Программа бесплатная.

UsefulSoft Print Censor Professionalпрограмма стоимостью $99 и размером 2,2 Мб, предназначенная для облегчения управления сетевыми принтерами, и ведения статистики их использования. Позволяет также просматривать и копировать задания печати с одного принтера на другой в формате NTEMF (только для принтеров, для которых этот формат разрешён в настройках обработчика печати и которые его “поддерживают” – HP Color LaserJet 8500 PS к таким, видимо, не относится, хотя PrintMirror с ним отлично работает; кроме того, печатающее приложение тоже должно поддерживать вывод печати в этом формате, как и в случае PrintMirror) и экспортировать их в форматы EMF, WMF, BMP, JPG. Файл .EMF, извлекаемый этой программой, совершенно идентичен файлу, извлекаемому PrintMirror (по сути, они просто извлекают одно и то же одним и тем же методом).

Mabuse Virtual Printer - неплохая бесплатная программа (размер 800 Кб). В отличие от PrintMirror, выставляет в заголовке .EMF-файла стандартный размер страницы (A4), нет предпросмотра, сразу извлекает в специальную папку все отправленные на печать страницы (в PrintMirror надо каждую извлекать отдельно). Капризна, если менять настройки по умолчанию (лучше этого не делать). Разработчики обещают поддерживать продукт, так что можно установить контакт. НЕДОСТАТКИ: сложная процедура установки, капризная, при печати из Acrobat русский текст оказывается конвертирован в растровые рисунки, надо ВРУЧНУЮ ОЧИЩАТЬ ОЧЕРЕДЬ ПЕЧАТИ после работы с программой, иначе при перезагрузке он будет заново извлекать .EMF-файлы.

Amyuni EMF Printer Driver - бесплатная программка (размер 97 Кб) с удобной инсталляцией. Автоматически извлекает все отправленные на печать страницы, их не надо сохранять по одной, как в PrintMirror. Из программ Microsoft печатает так же, как и PrintMirror, но есть глюки: если документ Word содержит большой растровый рисунок, программа или начинает отжирать огромное количество памяти (и потом создаёт .EMF размером в полгига; PrintMirror создаёт файл на 2 порядка меньшего размера) или вообще не создаёт никакого файла; кроме того, если нормально извлечённый рисунок вставить в Word и напечатать на этот принтер, ни одна страница данного документа извлечена не будет. Это не касается .EMF-рисунков, созданных другими способами. При печати из Acrobat конвертирует весь русский текст в растр. Так что программа сыровата! И не развивается с 2003 г.

Two Pilots Virtual Print Pilot - программа размером 1,1 Мб и стоимостью $36. Есть возможность задавать разрешение получаемого .EMF-рисунка (100 – 1200 dpi) и выставлять в свойствах принтера Portrait или Landscape (в зависимости от этого, при печати из Acrobat получается или результат как у PrintMirror с русским текстом, конвертированным в кривые, или весь текст конвертирован в низкокачественный растр, или рисунок повёрнут и весь текст конвертирован в кривые). В остальном не отличается по результату от PrintMirror никак, за исключением того, что такого же результата здесь надо добиваться путём проб и ошибок... При печати из программ Microsoft выставление в свойствах Portrait или Landscape никак не влияет на результат.

Black Ice EMF Printer Driver (Metafile Printer Drivers for Windows XP, 2000 and NT)- имеет размер 15 Мб, стоит $2000, лицензируется только для организаций. Как это ни удивительно, несмотря на огромный размер и цену она извлекает точно такой же рисунок, как PrintMirror, только зачем-то по умолчанию извлекает .EMF-файлы в директорию %TEMP%, где их надо искать вручную, сложно настраивается из-за нагромождения бесполезных неработающих опций (изменение некоторых из которых приводит к неработоспособности программы). Результирующий файл ничем не отличается от файла, сгенерированного PrintMirror. Демонстрационная версия полнофункциональна, ограничена только по времени (можно продлять, переводя часы назад). Возможно перенаправление печати на другой принтер и задание размера страницы. В общем, те же самые возможности, что и у PrintMirror. Результирующий файл при печати из Acrobat также никуда не импортируется и шрифт английских букв оказывается сброшен на Arial после закрытия Acrobat (а русские буквы конвертированы в кривые).

VeryPDF Document Printer (docPrint) - имеет размер 10 Мб, стоит $38. В плане экспорта в .EMF из программ Microsoft работает абсолютно так же, как PrintMirror и Virtual Printer, а в остальные форматы (кроме .WMF) экспортирует с конвертацией в растр. Из Acrobat при печати в .EMF также конвертирует всё в растр.


FinePrint FinePrint

Возможностью экспорта выводимого на печать документа в формате .EMF обладает также программа FinePrint FinePrint. PrintMirror зачастую извлекает намного более качественный .EMF, чем тот, что генерирует FinePrint. Особенно это заметно при печати из PowerPoint, MS Visio или Word 2003 повёрнутого на произвольный угол .EMF-рисунка: PrintMirror выдаёт прекрасный векторный рисунок c повёрнутыми на произвольный угол прямыми линиями, а FinePrint (как и pdfFactory выдаёт PDF) выдаёт как-то по-дурацки преобразованный векторный рисунок меньшего размера с более низким качеством (сделанный, как это ни невероятно "а-ля растровый низкого разрешения", но при это все пиксели растра оказываются конвертированы в векторные уголки. Наклонная прямая линия оказывается аппроксимирована последовательностью векторных уголков... абсурдно, но факт. Происходит это только с прямыми линиями, текст не портится).

К аналогичным, но ещё более ярким выводам в пользу PrintMirror приводит сравнение её со встроенной в PowerPoint, Publisher и MS Visio возможностью конвертации внедрённого объекта Word в рисунок .EMF: PrintMirror выдаёт более простой и совместимый .EMF, чем тот, что получается при экспорте средствами Microsoft. С преобразованиями последнего возникают проблемы даже у создавших его MS-программ (например, они не могут его повернуть без конвертации в растр), чего не скажешь о .EMF, извлечённом PrintMirror!



[1] Vipin Aravind – руководитель технического отдела (Chief Technical Officer – CTO) компании GraphicsHighway. К его разработкам относится PrintTuner – коммерческий виртуальный принтер стоимостью $25. Однако в плане экспорта в .EMF эта программа работает гораздо хуже, чем PrintMirror, как ни странно. Другие возможности также не идут ни в какое сравнение с программами-конкурентами.

[2] Вот что пишет Microsoft о формате EMF:

Ø The EMF format is an extensible format, which means that a programmer can modify the original specification to add functionality or to meet specific needs. This modification can lead to incompatibilities between different types of EMF pictures.

Ø Extensibility results in many different types of EMF pictures. Not all EMF files are compatible with all programs that support the EMF standard.

А вот по поводу импортабельности:

Ø The Enhanced Metafile graphics filter (Emfimp32.flt) converts Enhanced Metafiles (.emf) to Windows Metafiles (.wmf). You must have the Enhanced Metafile filter installed to insert an .emf file into a Word document as a Microsoft Clip Gallery object or a Photo Editor object. However, to insert an .emf file directly into a Word document, you do not need the Enhanced Metafile filter. The Enhanced Metafile filter is also used by the Word 97 import text converter to open Word 97 documents in Word 6.x and Word 95.

[3] При этом создаются файлы существенно большего размера, чем при печати на PrintMirror, которые принципиально не импортируются в не-Microsoft программы.

[4] Для работы EMFexplorer под Win2k и более ранними версиями Windows необходимо поместить файл gdiplus.dll в один из каталогов %PATH%.

Комментариев нет: