Что нового

Создание PDF документа

serzzz

Новичок
Сообщения
18
Репутация
0
Здраствуйте, такой вопрос. Может кто пытался скрестить GhostScript+RedMon c AutoIt? Ghostscript используют например для создания PDF dokumentov. Redmon софт для редиректа портов принтера, который может запускат ехе, бат файлы.
 
Автор
S

serzzz

Новичок
Сообщения
18
Репутация
0
Идея такая появилась:
Юзер конектится к терминалу. Там работает, делает свои дела... Появилась нужда отпечатать и чтобы не инсталировать под каждого юзера его принтер на терминалы (не все принтера могут печатать) то устанавливаем принтер локально (HP LaserJet PS). И когда юзер печатает на него то выходит диалоговое окно со взятым из АД емаилом на которое он и высылает нужный емы документ в формате %username%.PDF, а потом на своем локальном принтере отпечатывает.

пока получилось сделать так:
1. При логоне запускается АутоИт. Который мониторит папку на наличие документа с нужным названием..
2. При выполнении печати на принер через редмон порт запускается GhostScript который создает %username%.PDF
3. АутоИт это замечает и выкидывает окно в котором уже введен емаил или вводишь свой. и происходит высалка дока.

Это получилось... Но! Хочется чтобы создание документа делал аутоит. Синтакс для GhostScript батника такой из Инета :smile: :

Код:
set GHOSTSCRIPT=C:\Pdf_Print\Gs\gs8.71\bin\gswin32c.exe
set PDFFILE=C:\Pdf_Print\PDF_Temp\%REDMON_USER%.PDF

rem
rem <<Sukuria pdf doka>>
rem
start /WAIT %GHOSTSCRIPT% -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=%PDFFILE% %1 -dPDFSETTINGS=/default -dCompatibilityLevel=1.4
Документ аутоит создает, но пустой......

Код:
$CmdLineRaw = 'C:\Pdf_Print\Gs\gs8.71\bin\gswin32c.exe -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=%PDFFILE% %1 -dPDFSETTINGS=/default -dCompatibilityLevel=1.4

Run("C:\Pdf_Print\Gs\gs8.71\bin\gswin32c.exe" & $CmdLineRaw, "C:\Pdf_Print\Gs\gs8.71\bin\")
Ничего не происходит.

Код:
ShellExecuteWait("C:\Pdf_Print\Gs\gs8.71\bin\gswin32c.exe ","-sDEVICE=pdfwrite -r300 -dNOPAUSE -dSAFER -sPAPERSIZE=letter -sOutputFile=C:\Pdf_Print\PDF_Temp\2222.pdf -c save pop -f %1 quit","C:\Pdf_Print\Gs\gs8.71\bin\")
Создается док но пустой

может кто скажет где тут подвох.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 711
Думаю вряд ли кто-то что-то предложит. Например я использую Acrobat Distiller, а не GhostScript. А про RedMon вообще ничего не слышал...
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
serzzz
1. Для AutoIt когда есть тег AutoIt (3ая снизу кнопочка, черненькая).
2. А так разве не работает:
Код:
Run('C:\Pdf_Print\Gs\gs8.71\bin\gswin32c.exe -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="C:\Pdf_Print\PDF_Temp\%REDMON_USER%.PDF" %1 -dPDFSETTINGS=/default -dCompatibilityLevel=1.4')
 
Автор
S

serzzz

Новичок
Сообщения
18
Репутация
0
Работает! Создает док, но пустой.
Я думаю что вся беда будет в %1 в батниках. RedMon передает в GhostScript данные. в бат этот код создает полноценный документ с контентом.

Строка в аутоите только создает пустой документ.


Добавлено:
Сообщение автоматически объединено:

Кстати про редмон. Интересная весчь :smile:

http://pages.cs.wisc.edu/~ghost/redmon/
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
serzzz [?]
Строка в аутоите только создает пустой документ.
AutoIt к этому никакого отношения не имеет. Тут уж правильней сказать "через AutoIt". Т.к. pdf документ, таки, создает gswin32c.exe.

В общем. Надо открыть справку/сайт/программу через cmd ск ключем /? программы gswin32c.exe и посмотреть ключи коммандной строки. Что бы разобраться, как же ее запускать, что бы, таки, создавался правильный pdf документ. Т.к. AutoIt все выполняет верно и проблема не в нем.
 
Автор
S

serzzz

Новичок
Сообщения
18
Репутация
0
Разобрался. Оказывается %1 это и есть контент(В Аутоите использовать $CmdLine[1]) и в редмоне в строке аргументов надо тоже указать C:\Pdf_Print\PDF_Temp\креат_пдф.ехе %1

Код:
Run("C:\Pdf_Print\Gs\gs8.71\bin\gswin32c.exe -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=C:\Pdf_Print\PDF_Temp\"&$U_Name&".PDF "& $CmdLine[1], '', @SW_SHOW)
НО! Сталкнулся с такой проблемой этот креат_пдф.ехе запускается от юзера SYSTEM :(
и поэтому все диалоговые окна я(@Usename) не вижу.



Добавлено:
Сообщение автоматически объединено:

Может нувно создать два ехе. один креат_пдф.ехе создает пдф и запускает другой RunAs @Usename диалог.ехе
А пароль не нужен будет...?
 
Верх