Предлагаю в этой теме обсуждать программы, позволяющие конвертировать в векторные форматы выводимые на печать документы, а также между различными векторными форматами.
Вообще, надо признать, что не абсолютно все программы при выводе файла на печать создают .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(tm) PDF Printer Shell Tool - не работает с кириллицей: все кириллические символы просто удаляются из выводного файла (программа позволяет задавать, кстати, в каком формате выводить файл на печать - PS или EMF);
Amyuni PDF Creator 2.0е - не вполне понимает кириллицу, особенно полужирныый курсив. Ничего не удаляет из документа, ничего не конвертирует в кривые, но часть символов превращаются в абракадабру или совсем непонятно что. Может быть, в будущих версиях эту проблему всё-таки решат, потому что именно так он и отображает документ на экране, как выводит его на печать...
При печати на PrintMirror после закрытия окна PrintMirror на принтер, к которому привязана эта программа, ОТПРАВЛЯЕТСЯ ПУСТАЯ СТРАНИЦА! Очередь печати вначале открывается, а потом сама закрывается, так что напечатанные документы в очереди не накапливаются! Но при использовании её на базе виртуального принтера типа Canvas X недостаток в том, что программа, на которую перенаправляется печать, будет запускаться каждый раз, как вы закроете окно PrintMirror.
Ещё одно замечание: если вы всё же напортачили с установкой этого драйвера, созданный принтер можно удалить через остнастку "Принтеры", если предварительно очистить очередь печати для него (пока не очистите, Windows его не удалит).
В общем, это программа MUST HAVE, и является, по меньшей мере, необходимым дополнением MS Office, а зачастую и просто уникальной утилитой, позволяющей обойти ограничения, навязанные производителями программного обеспечения и тестировать качество работы приложений!
Недостатки: при установке некоторых других драйверов виртуальных принтеров, а также реальных, может сбиваться настройка PrintMirror, и использовать их драйвера для извлечения .EMF-файла. Соответственно, качество генерируемого .EMF-файла может сильно снизиться. При удалении этих принтеров через папку "Принтеры" восстанавливается, и начинает работать нормально. Заметьте, что некоторые драйвера реальных принтеров создают .EMF-рисунок, в котором всё конвертировано в растр! Не стоит привязывать к ним PrintMirror. При печати из Acrobat русские буквы конвертируются в кривые, а английские шрифты оказываются сброшены на Arial Unicode MS после закрытия Acrobat (поскольку в самом файле для английских букв оказывается указан шрифт вроде "ZTR3F.tmp", то есть временный шрифт, который изначально был внедрён в .PDF-файл, а теперь временно инсталлирован в системе для печати данного документа).
Импортабельность создаваемых .EMF-файлов целиком зависит от программы, из которой печатают. При печати из Acrobat получаемый файл в CorelDraw, Canvas X и Illustrator не импортируется (в отличие от печати на LEADTOOLS ePrint IV). При печати из Word 2000 файл прекрасно импортируется в Illustrator и CorelDraw 12.
А вообще, возможностью печатать в .EMF обладает также программа FinePrint (КАКИЕ ЕЩЁ?). Тем не менее, PrintMirror зачастую извлекает намного более качественный .EMF, чем тот, что генерирует FinePrint... Особенно это заметно при печати из PowerPoint, MS Viso или Word 2003 повёрнутого на произвольный угол EMF-рисунка: PrintMirror выдаёт прекрасный векторный рисунок c повёрнутыми на произвольный угол прямыми линиями, а FinePrint (как и pdfFactory выдаёт PDF) выдаёт как-то по-дурацки преобразованный векторный рисунок меньшего размера с более низким качеством (сделанный, как это ни невероятно "а-ля растровый низкого разрешения", но при это все пиксели растра оказываются конвертированы в векторные уголки. Наклонная прямая линия оказывается аппроксимирована последовательностью векторных уголков... абсурдно, но факт. Происходит это только с прямыми линиями, текст не портится)... К аналогичным, но ещё более ярким выводам в пользу этой програмы приводит сравнение её со встроенной в PowerPoint, Publisher и MS Visio возможностью конвертации внедрённого объекта Word в рисунок .EMF: PrintMirror выдаёт более простой и совместимый EMF, чем тот, что получается при экспорте средствами Microsoft. С преобразованиями последнего возникают проблемы даже у создавших его MS-программ (например, они не могут его повернуть без конвертации в растр), чего не скажешь о .EMF, извлечённом PrintMirror!
PrintMirror
PrintMirror [A print viewer utility by [more=Vipin Aravind]Vipin Aravind ( )– руководитель технического отдела (Chief Technical Officer – CTO) компании GraphicsHighway. К его разработкам относится PrintTuner – коммерческий виртуальный принтер стоимостью $25. Однако в плане экспорта в .EMF эта программа работает гораздо хуже, чем PrintMirror, как ни странно. Другие возможности также не идут ни в какое сравнение с программами-конкурентами.[/more]] - крохотная бесплатная программка (28 Кб дистрибутив) с открытым исходным кодом и просто потрясающей возможностью: она позволяет автоматически извлекать .EMF-векторный рисунок для каждой отправленной на печать страницы из спула любого PostScript-принтера!!!! Причём получается сразу векторный рисунок маленького размера, но очень высокого качества (которое, правда, определяется той программой, из которой печатают. Наилучшие результаты достигаются при печати из программ Microsoft, AutoCad, Corel WordPerfect, Adobe Designer, QuarkXPress, RagTime Solo, 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(tm) 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 Unicode MS после закрытия Acrobat (поскольку в самом файле для английских букв оказывается указан шрифт вроде "ZTR3F.tmp", то есть временный шрифт, который изначально был внедрён в .PDF-файл, а теперь временно инсталлирован в системе для печати данного документа).
Импортабельность создаваемых .EMF-файлов целиком зависит от программы, из которой печатают. При печати из Acrobat получаемый файл в CorelDraw, Canvas X и Illustrator не импортируется (в отличие от печати на LEADTOOLS ePrint IV). При печати из Word 2000 файл прекрасно импортируется в Illustrator и CorelDraw 12.
А вообще, возможностью печатать в .EMF обладает также программа FinePrint (КАКИЕ ЕЩЁ?). Тем не менее, PrintMirror зачастую извлекает намного более качественный .EMF, чем тот, что генерирует FinePrint... Особенно это заметно при печати из PowerPoint, MS Viso или Word 2003 повёрнутого на произвольный угол EMF-рисунка: PrintMirror выдаёт прекрасный векторный рисунок c повёрнутыми на произвольный угол прямыми линиями, а FinePrint (как и pdfFactory выдаёт PDF) выдаёт как-то по-дурацки преобразованный векторный рисунок меньшего размера с более низким качеством (сделанный, как это ни невероятно "а-ля растровый низкого разрешения", но при это все пиксели растра оказываются конвертированы в векторные уголки. Наклонная прямая линия оказывается аппроксимирована последовательностью векторных уголков... абсурдно, но факт. Происходит это только с прямыми линиями, текст не портится)... К аналогичным, но ещё более ярким выводам в пользу этой програмы приводит сравнение её со встроенной в PowerPoint, Publisher и MS Visio возможностью конвертации внедрённого объекта Word в рисунок .EMF: PrintMirror выдаёт более простой и совместимый EMF, чем тот, что получается при экспорте средствами Microsoft. С преобразованиями последнего возникают проблемы даже у создавших его MS-программ (например, они не могут его повернуть без конвертации в растр), чего не скажешь о .EMF, извлечённом PrintMirror!