> Мне не нужно железячный. Я хочу виртуальный. Т.е. хочу юзать > существующий. Или вообще выводить в PDF. Документация и примеры очень
Ну, если задача сужается до PDF, то советую взглянуть на порт под
Windows Ghostscript-а и к нему добавочку — RedMon (в исходниках)! Там
все просто.
Ставишь PS совместимый драйвер из поставки Win.
Я бы рекомендовал поставить к Minolta Color PagePro.
Ставишь RedMon, говоришь, чтобы дрова к Минолте выводили не на LPT и
пр., а печатали в порт, который сосздает RedMon. RedMon подхватывает
получаемый PS, запихивает его с одного конца в GhostScript, а с другого
получается PDF или что-нибудь еще, если надо.
Если к такому подходу есть интерес у публики RSDN, то могу запостить
сюда(куда?) пошаговую инструкцию, которую я написал, как все прикрутить
за 7 минут и наслаждаться полностью легальными PDFами
KGP>Здравствуйте, siv, Вы писали: KGP>Здравствуйте, я буду очень признателен, если Вы вышлите мне пошаговую инструкцию ... RedMon я уже
200 лет не заглядывал сюда, так что sorry всем за неслабую задержку
(С) инструкции полностью мой 2-х годичной давности.
С тех пор и юзаю до настоящего момента. На некоторых цветных картинках в сочетании с Минолтовским драйвером качество результат лучше, чем дает distiller
Последний пункт уже не актуален...
-===================================================================
|Как создавать в Windows NT и старше PDF-файлы легально бесплатно. |
===================================================================-
[Описывается на примере AFPL Dhistscript 8.11]
1. Установить Ghostscript.
2. Установить GSview.
3. Установить RedMon:
просто распаковать в целевую директорию;
запустить setup.exe.
4. Установить принтер "Minolta Color PageWorks/Pro PS".
Переименовать его в "GhostPDF" для наглядности.
5. В настройках принтера "Printing Preferances\Paper/Quality\Advanced":
ICM Method: Disabled;
TrueType Font: Substitute with Device Font;
PostScript Output Option: Optimize for Speed;
TrueType Font Download Option: Outline; !!!!!!
PostScript Language Level: 2;
Image Content: Photographs;
PS Color Matching: Accurate;
6. В настройках принтера "Ports":
нажать кнопку "Add Port";
выбрать тип "Redirected Port"
нажать кнопку "New Port" и дать имя порту, например "RedMon:";
понажимать OK столько раз, сколько нужно, чтобы вернуться
назад в настройки принтера "Ports";
выбрать для текущего принтера ("Minolta Color PageWorks/Pro PS") порт "RedMon:".
7. При выбранном порту "RedMon:" нажать на кнопку "Configure Port" и,
в открывшемся диаллоге, ввести:
Redirect this port to the program: <The full path to Ghostscript>\gswin32c.exe ;
Arguments for this program are:
@<The full path to RedMon>\prn_drv\pdfwrite.rsp -sOutputFile="%1" -c .setpdfwrite -f —
(NB: В конце обязательно после пробела символ "-"!);
Output: Prompt for filename;
Print Errors: v
Run: Hidden.
9. Закончить настройки принтера по OK.
8. Создать директорию <The full path to RedMon>\prn_drv.
10. В директории prn_drv создать текстовый файл pdfwrite.rsp с таким содержимым:
-I<The full path to Ghostscript Lib>;<The full path to Ghostscript fonts>
-r600
-sDEVICE=pdfwrite
-sPDFSETTINGS=printer
-dCompatibilityLevel=1.4
-dNOPAUSE
-dSAFER
-sPAPERSIZE=a4
-dDOINTERPOLATE
-sColorImageDownsampleType=Bicubic
Здесь каждая строка начинается сначала строки.
11. Теперь для создания PDF-файлов можно просто печатать на принтер с именем "GhostPDF".
При запросе имени файла следует вручную вводить расширение ".pdf"
12. Желательно вручную обновить шрифты из директории fonts. Для этого
распакуйте архив ghostscript-fonts-std-8.11.tar.gz в эту директорию.
Кто нибудь писал подобное?
Кто-нибудь имеет опыт написания Print spooler components, Print Provider, Partial print provider под платформы Win 9x/NT/2k/XP?
Как минимум хочу понять какую часть нужно реализовать, чтобы создать драйвер виртуального принтера.
Здравствуйте, shatokhin, Вы писали:
S>Привет!
S>Кто нибудь писал подобное? S>Кто-нибудь имеет опыт написания Print spooler components, Print Provider, Partial print provider под платформы Win 9x/NT/2k/XP? http://www.FengYuan.com/
Programming GDI (Программирование графики для Windows) is a must read
S>Как минимум хочу понять какую часть нужно реализовать, чтобы создать драйвер виртуального принтера.
смотря что нужно. пример законченного драйвера принтера можно найти в одном из DDK
(IIRC вполне может быть что именно в старом добром DDK NT4 это было, а потом МС это дело зажало)
в XP DDK есть примеры минидрайверов — тоже вполне драйвер принтера, правда в архитектуре UNIDRV.SYS)
также в DDK есть драйвер для печати только текста и драйвер плоттера который тоже является драйвером принтера
The MSPLOT is a Microsoft® Windows NT®/Windows® 2000 printer driver that is designed to support all HPGL/2 compatible plotters. The full source codes of this driver include parser/UI and are published in the DDK as an example of how to write a user-mode or kernel-mode printer driver in Windows NT/Windows 2000. The sample is 64-bit compliant.
... << RSDN@Home 1.1 beta 1 >>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Здравствуйте, Valerio, Вы писали:
V>Здравствуйте, shatokhin, Вы писали:
S>>Привет!
S>>Кто нибудь писал подобное? S>>Кто-нибудь имеет опыт написания Print spooler components, Print Provider, Partial print provider под платформы Win 9x/NT/2k/XP? V>http://www.FengYuan.com/ V>Programming GDI (Программирование графики для Windows) is a must read
S>>Как минимум хочу понять какую часть нужно реализовать, чтобы создать драйвер виртуального принтера. V>смотря что нужно. пример законченного драйвера принтера можно найти в одном из DDK V>(IIRC вполне может быть что именно в старом добром DDK NT4 это было, а потом МС это дело зажало) V>в XP DDK есть примеры минидрайверов — тоже вполне драйвер принтера, правда в архитектуре UNIDRV.SYS)
Мне не нужно железячный. Я хочу виртуальный. Т.е. хочу юзать существующий. Или вообще выводить в PDF. Документация и примеры очень бедны и не раскрывают полноты картины. Я выкачал все возможные книги на эту тему, но везеде пишут как работать на нижнем уровне с железками. Вот такая проблема. Всю архитектуру реализовывать — я думаю бессмысленно.
V>также в DDK есть драйвер для печати только текста и драйвер плоттера который тоже является драйвером принтера
V>
V>The MSPLOT is a Microsoft® Windows NT®/Windows® 2000 printer driver that is designed to support all HPGL/2 compatible plotters. The full source codes of this driver include parser/UI and are published in the DDK as an example of how to write a user-mode or kernel-mode printer driver in Windows NT/Windows 2000. The sample is 64-bit compliant.
Еще раз взгляну на этот пример.
Сам я не писал никогда подобных вещей. Сейчас для меня важнее оценить трудоемкость. А для этого нужно понять какую часть архитектуры прийдеться реализовать.
Здравствуйте, shatokhin, Вы писали:
S>Мне не нужно железячный. Я хочу виртуальный. Т.е. хочу юзать существующий. Или вообще выводить в PDF. Документация и примеры очень бедны и не раскрывают полноты картины. Я выкачал все возможные книги на эту тему, но везеде пишут как работать на нижнем уровне с железками. Вот такая проблема. Всю архитектуру реализовывать — я думаю бессмысленно.
так я не говорю что нужно его как железячный использовать — достаточно отвечать назад мол напечатал (или нет) и делать самому что хочешь вместо
действительно, всю архитектуру подсистемы печати вряд ли осилите, да и незачем
однако насчет документации не соглашусь: если у вас не MSDN/DDK 2003 то используйте online вариант от МС or OSR
там по-моему предостаточно по принтерной архитектуре, скорее не потонуть в инфе проблема
и железячным вещам как раз там не очень много внимания — скорее больit по архитектуре и компонентам отдельные главы.
S>Сам я не писал никогда подобных вещей. Сейчас для меня важнее оценить трудоемкость. А для этого нужно понять какую часть архитектуры прийдеться реализовать.
согласен, главное понять куда встраиваться (и как). промашка тут может быть очень дорогой
BTW: do google search for virtual printer driver — they recently recommended it to me for test purposes
... << RSDN@Home 1.1 beta 1 >>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
siv>Если к такому подходу есть интерес у публики RSDN, то могу запостить siv>сюда(куда?) пошаговую инструкцию, которую я написал, как все прикрутить siv>за 7 минут и наслаждаться полностью легальными PDFами
Если можно и не очень сложно, то лучше залить — лишним не будет.
Заранее спасибо.
Здравствуйте, shatokhin, Вы писали:
S>Кто нибудь писал подобное?
Ага.
S>Кто-нибудь имеет опыт написания Print spooler components, Print Provider, Partial print provider под платформы Win 9x/NT/2k/XP?
Все перечисленные вами вещи не нужны для реализации виртуального принтера, однако они также поддаются программированию.
S>Как минимум хочу понять какую часть нужно реализовать, чтобы создать драйвер виртуального принтера.
Обычно делается расширение (плагин) для стандартного драйвера. Вы переопределяете функции (такие, как печать текста, изменение шрифта, печать картинки), определяете фильтры, и все. В сущности трудности не в написании, а в тестировании.
Теперь о платформах:
1) самое страшное — NT. Синий экран смерти мне тогда по ночам снился
2) 2k/XP — полная халява. Драйвер пишется в user-mode, синих экранов нет, максимум — надо постоянно перезагружать диспетчер печати
3) 98 — некоторая проблема в том, что драйвера под нее 16-ти битные, и вам придется достать соответствующий компилятор (VC 1.52 и более младшие). Также есть и другие проблемы, но в принципы они решимы.
Сразу скажу, полноценный драйвер под NT я так и не смог написать. Kernel-режим — это довольно опасная и неудобная для тестирования штука... Также были и другие проблемы, но пожалуй сходу не вспомню.
А так, если не охота мучиться, есть готовые решения, тот же Acrobat Distiller или что-нить более халявное.
Здравствуйте, siv, Вы писали:
siv>Ну, если задача сужается до PDF, то советую взглянуть на порт под siv>Windows Ghostscript-а и к нему добавочку — RedMon (в исходниках)! Там siv>все просто. siv>Ставишь PS совместимый драйвер из поставки Win. siv>Я бы рекомендовал поставить к Minolta Color PagePro. siv>Ставишь RedMon, говоришь, чтобы дрова к Минолте выводили не на LPT и siv>пр., а печатали в порт, который сосздает RedMon. RedMon подхватывает siv>получаемый PS, запихивает его с одного конца в GhostScript, а с другого siv>получается PDF или что-нибудь еще, если надо. siv>Если к такому подходу есть интерес у публики RSDN, то могу запостить siv>сюда(куда?) пошаговую инструкцию, которую я написал, как все прикрутить siv>за 7 минут и наслаждаться полностью легальными PDFами
Здравствуйте, я буду очень признателен, если Вы вышлите мне пошаговую инструкцию ... RedMon я уже скачал ... но принцип установки его очень запутан — у меня принтер, подключенный к порту RPT1: не работает (вероянто это моя оплошность...) под XP ...
Спасибо Вам заранее.
GUI там никакой, как я понял.
siv>Ну, если задача сужается до PDF, то советую взглянуть на порт под siv>Windows Ghostscript-а и к нему добавочку — RedMon (в исходниках)! Там siv>все просто. siv>Ставишь PS совместимый драйвер из поставки Win. siv>Я бы рекомендовал поставить к Minolta Color PagePro. siv>Ставишь RedMon, говоришь, чтобы дрова к Минолте выводили не на LPT и siv>пр., а печатали в порт, который сосздает RedMon. RedMon подхватывает siv>получаемый PS, запихивает его с одного конца в GhostScript, а с другого siv>получается PDF или что-нибудь еще, если надо. siv>Если к такому подходу есть интерес у публики RSDN, то могу запостить siv>сюда(куда?) пошаговую инструкцию, которую я написал, как все прикрутить siv>за 7 минут и наслаждаться полностью легальными PDFами
Здравствуйте, siv, Вы писали:
KGP>>Здравствуйте, siv, Вы писали: KGP>>Здравствуйте, я буду очень признателен, если Вы вышлите мне пошаговую инструкцию ... RedMon я уже
siv>200 лет не заглядывал сюда, так что sorry всем за неслабую задержку
siv>(С) инструкции полностью мой 2-х годичной давности. siv>С тех пор и юзаю до настоящего момента. На некоторых цветных картинках в сочетании с Минолтовским драйвером качество результат лучше, чем дает distiller