Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Печать в EMF: PrintMirror, Leadtools ePrint и другие

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3

Открыть новую тему     Написать ответ в эту тему

popkov

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Другие найденные мной программы с возможностями 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!
 

Всего записей: 1860 | Зарегистр. 22-03-2003 | Отправлено: 03:37 30-05-2006
sorockinalex

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Полученный файл с помощью PrintMirror не могу открыть в CorelDraw!!!
Есть какие-нибудь программки для того, чтобы сделать emf портабельным???
 
То есть, к примеру, есть у меня emf, который я получил у себя дома на виртуальном принтере (из программы без каког-нибудь экспорта (Matlab 7) ), вставил в CorelDraw, разместил несколько таких рисунков там, растянул, подогнал размеры, сохранил в конечный файл.
Потом скопировал на флэшку, на этой же флэшке портабельная программка, которая позволяет, к примеру, на заводе (где кроме компаса и ворда нет ничего) запустить (без установки каких-нибудь программ) эту программку с флэшки загрузить в неё emf, задать разбивать на страницы или нет и послать на печать.
 
--Сорри за оффтоп--
begin
Вообще все непортабельные программы - полное гавно! Юзайте только портабельные - которые не гадят в реестр, в другие папки, кроме своей! Может и микрософт станет когда-нибудь такие писать и все остальные тугадумы (как я щас зол!!!! - уже полгода на форуме DownloadMaster пробиваю на портабельность)
 
Портабельные программкит лежат тут:
portableapps.com
portablefreeware.com
end

Всего записей: 7 | Зарегистр. 30-01-2006 | Отправлено: 17:09 06-06-2006
popkov

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
sorockinalex
 
Проблема импортабельности векторных форматов - это целая песня. EMF-закрытый формат, поэтому полной поддержкой всех его фич обладают только программы компании Microsoft. К тому, же, Microsoft постоянно усложняет его, чтобы разработчики не могли реализовать в своих программах полную его поддержку (так же, как файловую систему NTFS). На данный момент существует 3 типа файлов EMF, причём только один из них содержит фиксированный набор типов записей, остальные - "расширяемые". Однако, похоже, EMF'ами с произвольно модифицируемой ("расширяемой") спецификацией только Microsoft, пока, и пользуется - например, при экспорте из PowerPoint и Visio. "Лекарством" против "расширяемости" снова оказывается PrintMirror (и ePrint): при печати на виртуальные принтеры вся расширенная спецификация преобразуется к стандартной, понятной любому не-PostScript принтеру, для которого EMF-файл при печати, собственно, и создаётся!
 
Несмотря на все сложности, есть проект, автор которого стремится всё-таки разобраться с EMF:
http://frazmitic.free.fr/emfexplorer
Пока EMFexplorer находится на стадии бэта-версии, но я заметил у него одну очень полезную функцию, которая, вроде, не глючит: если открыть сохранённый PrintMirror EMF-рисунок в EMFexplorer, дальше скопировать его (Edit -> Copy), то теперь можно запустить CorelDraw и просто вставить его (Edit -> Paste)!  
EMFexplorer не требует инсталляции, но ему может потребоваться для запуска файл gdiplus.dll, который должен быть расположен в одном из каталогов, указанных в переменной %PATH% данного компьютера. Возможно, этот файл можно также просто положить в директорию программы.
 
Другой возможный вариант - использовать вместо PrintMirror виртуальный принтер LEAD Technologies LEADTOOLS ePrint IV, о котором я уже подробно написал выше. В пробной версии этой программы функция печати в .EMF работает без ограничений, т.е. для этой цели ePrint бесплатен. Извлекаемые им .EMF-файлы прекрасно импортируются в CorelDraw, хотя зачастую имеют в 3-6 раз больший размер, поскольку каждая буква текста в них оказывается позиционирована отдельно. Иногда эта программа зачем-то конвертирует некоторые символы в кривые, но редко, и с русскими буквами и нестандартными символами проблем не возникает. Рисунок, который неправильно импортируется в CorelDraw или вообще не импортируется, зачастую после вставки в Word  и печати на этот виртуальный принтер превращается в полностью совместимый с CorelDraw. Причём удивительно, что .EMF-файл, созданный CorelDraw, зачастую импортируется в CorelDraw с ошибками, но после обработки таким способом импортируется уже без ошибок! Правда, ePrint иногда конвертирует некоторые буквы в кривые, но не по принципу принадлежности к языку. Зачем это делается, не вполне понятно.
 
Единственный известный мне "легальный" универсальный способ импортировать .EMF-файлы в Adobe Illustrator или CorelDraw 13 (только версия 13!)  – вставлять их в Microsoft Word, преобразовывать в PDF с помощью плагина Acrobat PDFMaker 7 for Word, после чего импортировать полученный PDF в Illustrator 12 или CorelDraw 13. Импортируется великолепно, текст не только сохраняется в виде такста, но и слова не разбиваются на отдельные буквы! Если напечатать в PDF любым другим способом, при импорте полученного файла в Illustrator весь русский текст конвертируется в контуры, а при импорте в CorelDraw 13 происходит несостыковка кодировок. Более ранние версии CorelDraw отказываются импортировать созданные таким способом файлы PDF.
 
Добавлено:
 

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

 
Как я уже сказал, лучше всего поддерживают EMF программы Microsoft, поэтому самый надёжный путь - вставить EMF в Microsoft Word, подогнать размер рисунка под размер страницы, обрезать лишнее, если надо, и вывести на печать. Поскольку в EMF-файл не внедрены шрифты, которые необходимы для его отображения, они должны быть установлены на целевом компьютере. Если они не установлены - вместо них будет использован первый в списке шрифт Arial.
 
Альтернативный путь, который, возможно, покажется тебе более удобным, - использовать не требующую инсталляции программку PrintPic.exe, которая прекрасно печатает картинки, в том числе и EMF, и имеет кучу удобных опций!

Всего записей: 1860 | Зарегистр. 22-03-2003 | Отправлено: 17:18 07-06-2006 | Исправлено: popkov, 02:18 23-05-2007
popkov

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

Всего записей: 1860 | Зарегистр. 22-03-2003 | Отправлено: 02:19 10-06-2006
sorockinalex

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Попробовал все предложенные программы - EMFexplorer лучшая!!!
Теперь, скажем, на домашнем компьютере экспортировав в EMF я могу распечатать все листы в другом месте, где даже та программа не установлена! Будущее за портабельностью! Спасибо! Кстати, так и не получилось зайти на сайт PrintMirror! Он вообще ещё существует?

Всего записей: 7 | Зарегистр. 30-01-2006 | Отправлено: 00:00 18-01-2007
popkov

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
sorockinalex

Цитата:
Кстати, так и не получилось зайти на сайт PrintMirror! Он вообще ещё существует?

Пока существует и доступен: http://www.angelfire.com/extreme4/vprint/
А вот исходный код, который раньше был на странице http://cvs.sourceforge.net/viewcvs.py/printmirror/sources/
теперь не доступен...

Всего записей: 1860 | Зарегистр. 22-03-2003 | Отправлено: 08:25 13-02-2007
popkov

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вышла новая версия LEADTOOLS ePrint 5 Professional.
Главное нововведение - исправлена ошибка, связанная с потерей правой границы таблицы при печати подогнанных по ширине страницы таблиц из Word. Теперь ничего не теряется, файл получается чуть большего размера, чем раньше - и импортируется в CorelDraw так же хорошо, как и раньше.
Размер дистрибутива вырос до 23,5 Мб.

Всего записей: 1860 | Зарегистр. 22-03-2003 | Отправлено: 21:05 01-03-2007
Vlassoff

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У вас не осталось на локальной машине этого замечательного дистрибутива.
Текст который выложен по адресу
http://forum.ru-board.com/topic.cgi?forum=5&topic=18243&start=4&limit=1&m=1#1
Отредактирован модераторами и неполный. Если можно скиньте в личку или не e-mail _vlasov@rambler.ru

Всего записей: 3 | Зарегистр. 21-05-2007 | Отправлено: 10:33 22-05-2007
popkov

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Vlassoff

Цитата:
Текст который выложен по адресу  
http://forum.ru-board.com/topic.cgi?forum=5&topic=18243&start=4&limit=1&m=1#1  
Отредактирован модераторами и неполный.

На самом деле полный! Только что проверил: скопировал в EmEditor всё, что находится между
Цитата:
===========               Начало файла             ================================  
и
Цитата:
================              Конец файла              ===============================  
, сохранил с расширением .UUE (надо кавычки вокруг имени файла поставить, иначе расширение .txt будет добавлено). Сохранённый файл прекрасно распаковался WinRAR 3.41.
Скорее всего, вы где-то нарушили эту последовательность действий.  
На всякий случай на E-Mail выслал вам полный дистрибутив с документацией и своим описанием, опубликованным в этом топике.
 
 
Vlassoff

Цитата:
Уже около года пытаюсь разобраться как выудить из очереди печати файл  - ну никак!!! А тут индиец даже код выложил.

Успехов вам в нелёгком деле выуживания из недр Windows хорошо запрятанных там чрезвычайно нужных и удобных функций, которые монополист тщательно скрывает, чтобы только он один мог легко писать эффективные программы! Впрочем, похоже, сотрудники Microsoft постепенно утрачивают  "сакральное" знание, которое было положено в основу работы Windows и Office - старые люди, которые всё это создали и умели пользоваться, ушли, новые сакральным знанием не обладают, и с графикой работают через BMP. Позор, но именно к этому и приводит сакрализация знания!  
 
Microsoft издевается надо всеми пользователями, скрывая документацию на свои форматы, управление которыми для продвинутого пользователя - предмет первой необходимости. И EMF-куда более удобный и простой формат, чем PostScript - но все вынуждены пользоваться последним за незнанием нормальных программ даже просто для просмотра EMF! А ведь такая программа (WMFView, см. выше), оказывается, имеет размер всего 56 Кб, и совершенно не потребляет ресурсов процессора! А создателю EMFExplorer (380 Кб) удалось превратить формат EMF в альтернативу PDF, поскольку он добавил в своей программе к EMF поддержку мультистраничности, поворота на 90 градусов, сглаживания шрифтов, нормального масштабирования... Жаль, что этот проект заброшен. Формат EMF изначально создавался Microsoft именно как Device-Independent, так что аналогия с PDF получается глубже, чем кажется. Это признаёт даже Adobe - они на своём сайте в одной старой статье так прямо и пишут, что EMF-Device-Independent Format! Только шрифты не внедряются в EMF - но это и не всегда нужно простому пользователю, особенно если цель - именно работа с векторной графикой!

Всего записей: 1860 | Зарегистр. 22-03-2003 | Отправлено: 20:35 22-05-2007 | Исправлено: popkov, 21:27 22-05-2007
Vlassoff

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как толко дистрибутив дойдет до меня - представлю на суд читателей свои исследования.

Всего записей: 3 | Зарегистр. 21-05-2007 | Отправлено: 10:07 24-05-2007
ANevsky

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, плз., где найти лекарство на  O&K Printer Viewer ver. 1.1
 
Заранее спасибо!

Всего записей: 10 | Зарегистр. 21-05-2007 | Отправлено: 12:03 29-05-2007
popkov

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ANevsky
Насколько я помню, версия 1.0 была бесплатной. У меня она ещё сохранилась, так что могу выслать. А вопросы про лекарства - в Варезник!
Только зачем он тебе нужен? По сравнению с PrintMirror умеет только открывать спул-файлы, которые ты сам как-то сохранишь. Функция не очень нужная, на мой взгляд. Совместимость с CorelDraw не очень хорошая, так что ради неё его тоже не имеет смысла ставить.
Если нужна быстрая маленькая программа для печати в EMF с высоким качеством -это PrintMirror. Если нужна высокая совместимость с CorelDraw полученных векторных рисунков - то используй LEADTOOLS ePrint 5 Professional - у него функция печати в EMF работает в пробной версии без ограничений, а лекарство есть в Варезнике - так что и в другие форматы можно будет сохранять.

Всего записей: 1860 | Зарегистр. 22-03-2003 | Отправлено: 15:30 29-05-2007
ANevsky

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
popkov
 
Мне необходимо контролировать распечатку на принтере не только по названию документа, но и с возможностью просмотра в виде картинки. Так что эта программа мне нужна для несколько иного. Думаю лучше всего подходит O&K Print Viewer в сочетании с O&K Print Watch. Если есть в природе программы лучше для этого подходящие, буду очень благодарен за линки.

Всего записей: 10 | Зарегистр. 21-05-2007 | Отправлено: 15:47 29-05-2007
popkov

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ANevsky
А что значит "контролировать"? Любят же некоторые использовать малосодержательные абстрактные слова... Просто Preview для программ, у которых нет такой опции - или наблюдение, кто что распечатывает на сетевом принтере с возможностью запрета?
В любом случае, за лекарством - в Варезник.

Всего записей: 1860 | Зарегистр. 22-03-2003 | Отправлено: 16:48 29-05-2007 | Исправлено: popkov, 16:49 29-05-2007
ANevsky

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
popkov
Т.е. принтер стоит на одном компьютере, а мне надо на другом смотреть кто, сколько и что именно печатает. На деле PrinterViewer не пробовал, еще не знаю как он себя поведет. Сейчас собираю всю информацию, чтобы быть готовым к любым неожиданностям

Всего записей: 10 | Зарегистр. 21-05-2007 | Отправлено: 18:03 29-05-2007
popkov

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ANevsky
Таких программ я встречал минимум 3. См. мой обзор на предыдущей странице.

Всего записей: 1860 | Зарегистр. 22-03-2003 | Отправлено: 22:55 29-05-2007
textExpanser



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Только недавно тайна этой очень важной недокументированной возможности Windows была раскрыта индийским программистом

   Вообще-то эту "тайну" знает любой программист, печатающий из своей программы на принтер из-под Windows. Ведь все программы создают EMF файлы перед выводом на печать. Хотя в некоторых средствах разработки это для упрощения может быть запрятано. Но любой программист, знающий WinAPI обязаятельно знает эту "тайну".
 
А за тему спасибо, полезная!

Всего записей: 197 | Зарегистр. 05-05-2004 | Отправлено: 13:59 08-06-2007
popkov

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Вообще-то эту "тайну" знает любой программист, печатающий из своей программы на принтер из-под Windows. Ведь все программы создают EMF файлы перед выводом на печать.

    Сам факт создания метафайлов при выводе на печать, конечно, известен каждому программисту (однако является настоящим открытием даже для продвинутого пользователя!).
Но вот как извлечь метафайл из спул-файла - до Vipin Aravind это было закрыто. Это было "сакральное знание" и доступ к нему имели только программисты Microsoft, поскольку все важнейшие функции, которые использовал Vipin Aravind в своей программе - недокументированные! И он впервые документировал эти функции в двух своих статьях, сделав это знание достоянием всего Интернет-сообщества:
   Даже и сейчас, когда уже больше 3-х лет прошло после публикации этих статей, исходники PrintMirror остаются, похоже, единственным открытым примером по использованию этих недокументированных функций.
 
    Понятно, что крупным корпорациям такого рода сведения всегда были доступны, поскольку они могут себе позволить брать платные консультации у специалистов из компании Microsoft. Может быть, и до Vipin Aravind кто-то разбирался с этим, но не опубликовал результаты своих исследований. А Vipin Aravind не только всё опубликовал вместе с исходными кодами, но и создал классный инструмент, позволяющий с лёгкостью обходить целый ряд искусственных ограничений, навязанных компаниями-монополистами, форматы которых совершенно несовместимы друг с другом и несовместимы с Office, что является большой подставой для продвинутого пользователя! Даже компания Microsoft, создавшая этот формат, ставит подножки на пути грамотного пользователя к работе с ним! Например, в Office XP наконец-то появилась возможность поворачивать векторные EMF-рисунки на произвольный угол, что зачастую бывает очень ценно при создании качественно оформленного документа Word.  
И что же?  
 
Поворот метафайла на произвольный угол

    Если делать поворот метафайла в Word, то весь текст в EMF-рисунке перестаёт отображаться, а при выводе на печать на не-PostScript-принтер (например, при конвертации в PDF бесплатными программами для его создания) или не печатается вообще или на его месте получается какая-то белиберда. Кроме того, такой файл оказывается несовместим с более ранними версиями Office, поскольку там поворот рисунков не поддерживается. Если делать поворот в PowerPoint, то ситуация кажется обнадёживающей: текст отображается, но почему-то с низким качеством. Повёрнутый рисунок можно даже сохранить в повёрнутом виде из PowerPoint - но при этом получается рисунок страшного размера (96-килобайтная таблица в формате EMF, которую я приготовил, чтобы вставить в повёрнутом виде в свою публикацию, приобрела размер аж 1.4 Мб). Этот рисунок при выводе на печать из Word почему-то печатается без текста (только границы таблицы). Как ни станно, этот метафайл содержит одновременно растровый и векторный рисунок. Причём только EMFExplorer может отобразить его векторное содержимое (да и то только если выбрать максимальный масштаб отображения) - остальные программы (WMFView, и даже Word, PowerPoint) отображают и печатают только чудовищно низкокачественный растровый рисунок, который и занимает, видимо, столько места (1.4 Мб).  
    Перепробововав все возможные варианты (в т.ч. и другие программы Microsoft, предназначенные, казалось бы, как раз для решения подобных задач: Microsoft Visio и Microsoft Publisher), я обнаружил, что средствами программ компании Microsoft такое простое действие, как поворот векторного рисунка на произвольный угол, выполнить невозможно! Причём импортировать EMF-рисунок в такие пакеты, как CorelDraw и Illustrator в большинстве случаев также невозможно - они не испортируют подавляющее большинство метафайлов (хоть и заявлена такая возможность), а те, которые импортируют - искажают настолько, что невозможно работать. CorelDraw не может импортировать даже те EMF-файлы, которые он сам создаёт при экспорте! То же относится к Illustrator. Что касается тех случаев, когда можно вставить в CorelDraw векторный рисунок через Paste Special (например, из Word или PowerPoint) - результат тоже не радует: последовательности символов переразбиваются на группы произвольным образом, в результате чего некоторые слова оказываются разорваны пробелом - и это в лучшем случае! К сожалению, внедрённые объекты CorelDraw также не умеет поворачивать. Единственный путь для импорта метафайлов в CorelDraw и Illustartor с более-менее приемлемым качеством я уже описывал выше: вставить метафайл в Word, с помощью плагина от Adobe сгенерировать PDF, затем импортировать в CorelDraw 13 или Illustrator. (Искажения при импорте такого PDF в CorelDraw, в основном, связаны с неправильной обработкой коротких и длинных тире.) Полученный векторный рисунок можно повернуть в этих программах на произвольный угол, но корректно экспортировать полученный рисунок обратно в EMF не удаётся. А если внедрить в Word объект CorelDraw - тоже ничего хорошего: рисунок сильно искажён при отображении в Word и печати из Word.
 
    Казалось бы, ситуация полностью безнадёжна, и надо просто смириться с тем, что программы Microsoft этого делать не умеют, а программы сторонних разработчиков импорт метафайлов не поддерживают. Непонятно, правда, почему такой элементарной вещи Microsoft не смог сделать: ведь главным преимуществом векторной графики над растровой как раз и является возможность масштабировать, вращать, искажать её разнообразными способами совершенно без потери качества! И поворот векторного рисунка должен быть куда более простой задачей, чем поворот растрового: надо просто пересчитать координаты объектов на рисунке и задать для каждого из них соответствующий угол поворота (и текст не является камнем преткновения - это тоже векторный объект, который Word прекрасно умеет поворачивать). В чём же проблема? Может, в том, что Microsoft просто не хочет дать в руки простому пользователю такой инструмент, который уже давным-давно полностью реализован? Действительно, повёрнутый в PowerPoint и экспортированный в EMF векторный рисунок каким-то чудом отображается в EMFExplorer именно в векторном виде и без потери качества, но Word "видит" и выводит на печать только его растровую часть. Странный парадокс, не правда ли? Программа стороннего разработчика работает с родным форматом Office лучше, чем Office! Кроме того, теперь очевидно, что программы Microsoft всё же умеют нормально работать с EMF (поворачивать на произвольный угол), но это почему-то заблокировано, недоступно пользователю! Всё уже давным-давно реализовано, но в угоду корпоративным интересам тщательно прикрыто, причём даже с издёвкой: вместо крохотного высококачественного векторного рисунка пользователь получает внедрённый в EMF-файл чёрно-белый растровый невероятно низкого качества (гораздо худшего, чем должно быть при его размере 1232 x 1009 пикселей в моём случае), причём он ещё сохранён в 8-битовом BMP-формате, и поэтому занимает чудовищное количество места! Получается, что Microsoft блокирует грамотному пользователю возможность нормальной работы с векторной графикой высокого качества, несмотря на то, что все необходимые функции полностью реализованы давным-давно!  
    С помощью PrintMirror можно поворачивать метафайлы на 90 градусов, используя для поворота программу BlueSquirrel ClickBook. Можно из приложения печатать на ClickBook, а из последней перенаправлять на PrintMirror в повёрнутом виде. Неудобно, но зато получается идеальный векторный рисунок: крохотный и высочайшего качества.
    Что касается поворота на произвольный угол, то с использованием PrintMirror можно отследить интересные закономерности: если в PowerPoint повернуть векторный рисунок на произвольный угол, что текст перестаёт отображаться, а при печати на PrintMirror извлекается крохотный метафайл, содержащий повёрнутый векторный рисунок. Однако, как ни странно, текст внутри полученного метафайла (правда, не полностью) отображается опять же только в EMFExplorer - но зато уже при любом масштабе (при включённой опции использовать GDI+). В WMFView текст тоже можно увидеть (полностью), но только если задать большой масштаб отображения векторного рисунка (так же как и в EMFExplorer при отключенной опции использовать GDI+)! Что касается Word, то он отображает текст только в тех участках рисунка, которые только что были перерисованы: например, выехали из-за края страницы. В остальной части рисунка текст не отображается и не выводится на печать.
    Ценность PrintMirror ещё в том, что извлекаемый им метафайл не содержит никакой расширенной спецификации, и потому заведомо лучше совместим с более ранними версиями Windows (Win98 не поддерживает метафайлы с расширенной спецификацией, как я понял) и Office. Кроме того, есть подозрение, что создаваемые PowerPoint метафайлы могут требовать для просмотра установленного Office, чего заведомо не требуется для просмотра метафайла, генерируемого PrintMirror (и ePrint): эти метафайлы предназначены для обработки драйвером принтера, и поэтому заведомо не могут содержать внутри себя никакой расширенной спецификации.
 
    P.S. Насколько я могу судить, программистам информация на тему вращения метафайлов также недоступна: даже недокументированную функцию поворота на 90 градусов только сравнительно недавно документировал автор EMFExplorer (хотя сам EMFExplorer не может  корректно сохранить полученный метафайл), а поворот на произвольный угол - до сих пор полностью недокументированная возможность, о самом существовании которой можно только догадываться!

Всего записей: 1860 | Зарегистр. 22-03-2003 | Отправлено: 20:52 08-06-2007 | Исправлено: popkov, 01:11 26-11-2007
f1fan

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уже довольно долго пользуюсь PrintMirror, незаменимая вещь например в картографии. Электронные вектроные карты только так получается сграбить для последующей обработки. Кстати исходники PrintMirror причем версии 1.5 лежат у китайцев:
hччp://ввв.pudn.com/downloads79/sourcecode/windows/vxd/detail302507.html
Сайт функционирует по принципу BBS так что скачать непросто, но возможно.

Всего записей: 275 | Зарегистр. 15-05-2003 | Отправлено: 15:49 01-08-2007
MVed



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
popkov
Вопрос к гуру, наверное, немного не по теме, но все же - что посоветуешь для получения качественного (и оптимального по размеру - это важно) PS/EPS ? Возможно, из того же качественного EMF?  Сейчас использую печать на стандартный Адобовский, совместимый со всем и вся, Generic PostScript Printer, но, возможно, есть лучшие варианты? Ибо размер иногда получается - ого-го..

Всего записей: 430 | Зарегистр. 15-10-2001 | Отправлено: 20:06 31-08-2007
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3

Компьютерный форум Ru.Board » Компьютеры » Программы » Печать в EMF: PrintMirror, Leadtools ePrint и другие


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru