Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] печать XML

Ответить
Настройки темы
CMD/BAT - [решено] печать XML

Аватара для Loki3D

Старожил


Сообщения: 362
Благодарности: 12

Профиль | Отправить PM | Цитировать


помогите советом. Нужно автоматизировать печать XML файла, который идет вместе с XSLT файлом стиля.
Так же желательно, чтобы решение поддерживало Масштабированность печати по ширине альбомно ориентированного листа А4.
Идеальный вариант печати- из браузера IE, но тут требуется участие человека. Вроде как нету ключа, который бы позволил запустить IE на открытие нужного файла и печать.
Может ктото уже решал подобную задачу, знает консольные утилиты, или может вариант с конвертированием xml во чтото, что можно распечатать через консоль.
Вариант с табулировнным TXT не подходит изза большого количества столбцов втаблице, описанной в xml файле.

-------
sory 4 my rus


Отправлено: 11:39, 06-10-2009

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата Loki3D:
Идеальный вариант печати- из браузера IE, но тут требуется участие человека. Вроде как нету ключа, который бы позволил запустить IE на открытие нужного файла и печать. »
автоматизировать можно через WSH, пример VBS-скрипта для печати через IE:
Код: Выделить весь код
On Error Resume Next

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objIE  = CreateObject("InternetExplorer.Application")

strFile = Wscript.arguments.Item(0)
strFile = objFSO.GetAbsolutePathName(strFile)

If Not(objFSO.FileExists(strFile)) Then
   WScript.Echo "Файл не найден"
   WScript.Quit
End If

objIE.Visible = True
objIE.Navigate strFile

While objIE.Busy
   WScript.Sleep 100
Wend

objIE.ExecWB 6, 2
WScript.Sleep 1000
objIE.Quit
пример запуска VBS скрипта из CMD:
Код: Выделить весь код
CScript //Nologo IEPrint.VBS MyFile.XML
P.S. окно IE можно скрыть, заменив значение objIE.Visible с "True" на "False"
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:16, 07-10-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Loki3D

Старожил


Сообщения: 362
Благодарности: 12

Профиль | Отправить PM | Цитировать


Большое спасибо! это то, что нужно.
Подскажите пожалуйста только, как можно изменить ориентацию листа с книжной на Альбомную.

-------
sory 4 my rus


Последний раз редактировалось Loki3D, 07-10-2009 в 09:28.


Отправлено: 09:16, 07-10-2009 | #3


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата Loki3D:
как можно изменить ориентацию листа с книжной на Альбомную »
не так просто... учитывая, что IE не сохраняет ориентацию листа, а каждый раз считывает настройки с принтера, кроме того в KB236777 недвусмысленно сказано, что программно эту настройку в IE изменить нельзя:
Цитата:
There might be a need to change the print settings of Internet Explorer or the WebBrowser control programmatically. The only settings that can be changed are page margins, and header and footer information. There is no supported way to change other settings like page orientation or printer.
тем не менее есть один вариант (кроме ручной перенастройки параметров принтера): сходить по этому линку: PageSet.exe Programmatically Changes Default Printer Orientation, скачать оттуда Pageset.exe, выдернуть из комплекта PageSet.dll и зарегистрировать его в системе через RegSvr32 - после этого COM-объект можно использовать в WSH. Слегка измененный VBS-скрипт, использующий функциональность "PageSet.PrinterControl" - перед печатью ориентация устанавливается на книжную, а после - восстанавливается на первоначальную:
Код: Выделить весь код
On Error Resume Next

Set objFS = CreateObject("Scripting.FileSystemObject")
Set objIE = CreateObject("InternetExplorer.Application")
Set objPG = CreateObject("PageSet.PrinterControl")

strFile = Wscript.arguments.Item(0)
strFile = objFS.GetAbsolutePathName(strFile)

If Not(objFS.FileExists(strFile)) Then
   WScript.Echo "Файл не найден"
   WScript.Quit
End If

objPG.ChngOrientationLandscape
objIE.Visible = False
objIE.Navigate strFile

While objIE.Busy
   WScript.Sleep 100
Wend

objIE.ExecWB 6, 2
WScript.Sleep 1000
objPG.ReSetOrientation
objIE.Quit

Отправлено: 12:40, 07-10-2009 | #4


Аватара для Loki3D

Старожил


Сообщения: 362
Благодарности: 12

Профиль | Отправить PM | Цитировать


Охеренное тебе спасибо. Очень Выручил!

Может кому то будет полезно.
Я еще попутно бился над вопросом Смены принтера по умолчанию из командной строки и нашел вот такое решение
RUNDLL32 printui.dll,PrintUIEntry /?

-------
sory 4 my rus


Отправлено: 16:18, 07-10-2009 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] печать XML

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] xml содержимое bruder Вебмастеру 8 07-04-2008 17:24
RDP/Citrix/Term - [решено] печать через уд.раб. стол <RDP, Windows 2003, печать> ВладимирТ Сетевые технологии 7 14-02-2008 12:10
[решено] проверка XML-файла на соответствие XML schema в IE 6 и Firefox 2 dimait Вебмастеру 4 23-08-2007 02:02
[решено] XML editor Yart Вебмастеру 3 22-06-2006 15:05
Офис и Текст - Печать PRN файлов (печать в файл) ivieDVeD Программное обеспечение Windows 12 13-04-2006 16:49




 
Переход