PDA

Просмотр полной версии : "общение" из кода с Document Image Writer Printer


ShAAB
05.07.2004, 17:26
возможно ли послать документ на печать на этот "принтер", причем указав имя файла, куда сохранять, чтоб он ничего больше у пользователя не спрашивал?

зы. это ms office 2003 устанавливает такой принтер.

gandalf_g
06.07.2004, 11:56
А почему не позволишь юзеру самому выбирать куда посылать печать? или нужно не вызывать этот диалог выбора принтера, страниц и проч? и на чем вообще реализовывать собрался?

ShAAB
06.07.2004, 12:07
юзер сам не хочет этого :) его пугают объемы.
периодически надо сохранять в тифе порядка 1000 документов.
забивать каждый раз имя файла не надо, image writer по-умолчанию предлагает заголовок документа в качестве имени, что устраивает. но подтверждать его все равно запаришься.

к вопросу "на чем": задача стоит делать это из 1с, но можно и из excel'а, если это будет проще. туда закинуть из 1с не проблема.

gandalf_g
06.07.2004, 12:56
В принципе есть такая фишка, тот же Word может печатать без запроса на принтер, делается это через коммандную строку, параметр /print если не ошибаюсь, там же можно вроде указать имя принтера куда выводить печать, а вот с запросом сохранения... тут проблематично... впрочем может там же можно и указывать куда...

Документы какого типа, просто текст или форматированный текст т.е. word формат?

ShAAB
06.07.2004, 13:01
как я написал выше, это документ 1с.
в документ есть текст, картинки и внедренные объекты. в эксел все это перекинуть не проблема.

gandalf_g
06.07.2004, 14:06
Ок, значит excel, вижу несколько путей:

1. Пошаманить с командной строкой excel, возможно все таки можно обойтись малой кровью и печатать скажем через батничек.

2. Писать прогу, которая через COM будет выводить печать в файлы без запроса пользователя. Тут нужны углубленные знания как СОМ так и программирования под MSOffice

3. Возможны есть какие нить альтернативные программы поддерживающие распечатку excel страниц на определенный принтер, не думаю что такие есть но вдруг...

4. Воспользоваться VBA, грузить доки, слать на печать из excel. Тоже весьма смутный вариант

5. Воспользоваться внутренним языком 1С, возможно с его помощью можно вызывать на печать в файл определенные документы. Это стоит спросить у программистов 1С.

ShAAB
06.07.2004, 14:23
все эти пути понятны.
все упирается в интерфейс этого принтера.

например в 1с можно послать документ на печать, но 1с не позволяет указать при этом имя файла, обычным принтерам оно же нужно.
следовательно надо использовать какой-то механизм windows.
я порылся на msdn, и гугла помучал, найти что-то не получилось.
единственное, встречал на англоязычных форумах аналогичные вопросы.

меня интересует, как вообще можно "общаться" с принтером в windows :)
и в частности с этим.

gandalf_g
06.07.2004, 15:06
Platform SDK: Windows GDI
Printing and Print Spooler
если интересует API.

Нету под рукой этого самого принтера MS Image Writter чтобы его помучать. Не помню точно, он вроде находится в системе как обычный принтер, соотв. с ним работать можно как с обычным принтером. Вопрос конечно остается, как этому принтеру указать куда собственно печатать. Собственно по своему опыту работы с печатью (VC++, MFC) можно указывать куда печатать (имя файла), после выставляешь флаг мол не выдавать диалог печати, и вперед. Смутно помню что это работало с MS Image Writter. Вот только одно, вывод на печать я делал руками, обычный текст, а тут нужно слать Excel документ. Вот тут я ничего не придумать не могу :idontnow:

ShAAB
06.07.2004, 15:50
спасибо за направление копания :) буду искать и экспериментировать.

о! получилось из эксела сделать то, что надо с помощью макроса. :yees:
вот:
Sub Макрос1()
Application.ActivePrinter = "Microsoft Office Document Image Writer (Ne00:)"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"Microsoft Office Document Image Writer (Ne00:)", Collate:=True, PrToFileName:="test.tif"
End Sub