Имя: Пароль:
IT
Админ
Печать на старый сетевой принтер из Windows 7
,
0 Garkin
 
13.06.13
11:47
Проблема: Есть комп с win XP к нему подсоединен принтер для которого нет дров под Win 7 . Вопрос как как на него печатать по сети с компьютера с Win 7?
1 fenixx
 
13.06.13
11:50
Какой принтер? Марка, модель...
2 Godofsin
 
13.06.13
11:54
(0) универсальный драйвер
3 Ковычки
 
13.06.13
11:56
laserjet 1200 ps -> c:\print.ps -> ghosscript -> любойпринтер
4 Ковычки
 
13.06.13
11:56
все автоматически
5 Garkin
 
13.06.13
11:56
Xerox Phaser 3150
6 Ковычки
 
13.06.13
11:57
это вроде как самсунг
7 Garkin
 
13.06.13
12:01
(3) Можно чуть подробнее для дилетантов.
8 Garkin
 
13.06.13
12:03
(6) Пробовал я ему самсунговские дрова подсунуть, с моих рук не берет.
9 Противный
 
13.06.13
12:06
(0) яндкс не помог?
http://yandex.ru/yandsearch?text=xerox+phaser+3150+драйвер+для+windows+7&lr=11432
по первой ссылке много инфы для размышления...
10 Ковычки
 
13.06.13
12:17
(7) ставим на том где подключен принтер - "фиктивный" принтер HP LaserJet 1200 PCL (можно PS - предпочитаю, немного допилив пакетник) с новым портом типа c:\temp\spool.pcl (создаем при установке новый локальный порт). Так же скачиваем и устанавливаем ghostscript, по сути достаточно исполняемого файла и пары библиотек что с ним идут, далее в шедулер каждую минуту типа такого (ну или еще как)
printpcl.bat c:\temp\spool.pcl

@echo off

@set printer=SamsungSCX3400Series

@set ScriptFullName=%~0
@set ScriptName=%~nx0
@set findstr=true
@set find=%systemroot%\system32\findstr.exe
@if not exist "%find%" (
   @set findstr=false
   @set find=%systemroot%system32\find.exe /i
   ) else (
   @set find=%systemroot%\system32\findstr.exe /i /c:
   )

@set size=0
@set spool=-
@if not exist "%~1" goto next
   set spool=%~1
   set /a size=%~z1
   if %size% lss 3 exit /b
:next
@set gs=%ProgramFiles%\gs\gs9.07\bin\gswin32c.exe
@set printcmd="%gs%" -dNoCancel -dNOPAUSE -dBATCH -dNODISPLAY
@set gspcl=%ProgramFiles%\gs\gs9.07\bin\pcl6-9.07-win32.exe
@set stdoutcmd=-sDEVICE=pdfwrite -dNoCancel -dNOPAUSE -dNODISPLAY -dBATCH -sOutputFile="%%stdout"

@set document=Ghostscript
@set device=mswinpr2
@set pssetup=%temp%\%RANDOM%.spool.ps
@set getpapersize=

setlocal enabledelayedexpansion
call :getpscomment "@PJL COMMENT" "%spool%" "Username:" "Filename:"
set getpscomment=!getpscomment:"=!
set getpscomment="!getpscomment:;=","!"
for %%i in (!getpscomment!) do (
   set subcomment=%%~i
   echo !subcomment! | %find%"Username:" > nul && (
       set prnuser=!subcomment:*Username:=!
   ) || echo !subcomment! | %find%"Filename:" > nul && (
       set prntitle=!subcomment:*Filename:=!
   )
)
call :trim "!prnuser!"
set prnuser=!trim!
call :trim "!prntitle!"
set prntitle=!trim!
chcp 866 > nul
call :getchar "%ScriptFullName%" "=D0"
echo %prnuser% | find "%getchar%" > nul && (
   call :iconv "utf-8" "cp1251" "%prnuser%"
   set prnuser=!iconv!
)
chcp 866 > nul
echo %prntitle% | find "%getchar%" > nul && (
   call :iconv "utf-8" "cp1251" "%prntitle%"
   set prntitle=!iconv!
)
chcp 866 > nul

if not "!prntitle!"=="" set document=!prntitle!

@call :pssetup "%device%" "%printer:\"=\'%" "%document% - %prnuser%" "%pssetup%" "%getpapersize%"

"%gspcl%" %stdoutcmd% "%spool%" | %printcmd% -q "%pssetup%" -
@ping -n 4 127.0.0.1 > nul
@if not "%spool%"=="-" (
   <nul set x=>"%spool%"
)
@del /q "%pssetup%"

exit /b

:pssetup (device,printer,document,pssetup,papersize) {
   @@rem Процедура задания параметров очереди печати
   @@rem (устройство, принтер, заголовок + имя пользователя, размер листа)
   @@rem
   setlocal
   set device=%~1
   set printer=%~2
rem    call :iconv "cp866" "cp1251" "%printer%"
rem    set "printer=%iconv%"
   set printer=%printer:""=\'%
   set printer=%printer:\'="%
   set printer=%printer:(=^^(%
   set printer=%printer:)=^^)%
   set document=%~3
   set pssetup=%~4
   set papersize=%~5
   if "%papersize%"=="" set papersize=595 842
   (
rem    echo %%!
   echo mark
   echo %%/.MediaSize [%papersize%]
   echo /PageSize [%papersize%]
   echo /NoCancel true
   echo /OutputFile ^(%%printer%%%printer%^)
   echo /UserSettings
   echo ^<^<
   echo %%/MediaSize [595 842]
   echo /DocumentName ^(%document%^)
   echo /MaxResolution 300
   echo ^>^>
   echo ^(%device%^) finddevice
   echo putdeviceprops
   echo setdevice
   echo.
   ) > "%pssetup%"
   endlocal
   exit /b 0
   }

:trim (input) {
   @@rem Процедура сжатия незначащих пробелов
   @@rem
   setlocal
   set out=%~0
   if "%out:~0,1%"==":" (
       set out=%out:~1%
       ) else (
       set out=out
       )
   set ret=%~1
   for /f "tokens=*" %%i in ("%ret%") do (
       set ret=%%~i
       )
   :loop_trim
   set rtemp=%ret:"=\'%
   if "%rtemp:~-1%"==" " (
       set "ret=%ret:~0,-1%"
       goto loop_trim
       )
   endlocal & set %out%=%ret%
   exit /b 0
   }

:getpscomment (that,psfile,spec) {
   @@rem Процедура получения нужных параметров из файла печати
   @@rem (заголовок, имя пользователя и т.п.)
   @@rem
   setlocal enabledelayedexpansion
   set out=%~0
   if "%out:~0,1%"==":" (
       set out=%out:~1%
       ) else (
       set out=out
       )
   set that=%~1
   set psfile=%~2
   set spec=%find%"%~3"
   if "%~3"=="" set spec=more
   set opt=
   for /f "delims=" %%i in ('%find%"%that%" "%psfile%" 2^> nul ^| %find%"%that%" 2^> nul ^| %spec%') do (
       set opt=%%~i
       set opt=!opt:*%that%=!
       set opt=!opt:^(=!
       set opt=!opt:^)=!
       set opt=!opt:"=""!
       set ret=!opt!
       echo "!opt!" | %find%"<" 2> nul | %find%">" > nul 2> nul && (
           set opt=!opt:^<= !
           set opt=!opt:^>= !
           call :trim "!opt!"
           set opt=!trim!
           if "!opt!"=="" goto break_getpscomment
           set ret=!opt!
           call :len "!opt!"
           set /a len=!len! %% 2
           if not !len!==0 goto break_getpscomment
           for %%z in (0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f) do (
               set ret=!ret:%%z=!
               )
           if not "!ret!"=="" (
               set ret=!opt!
               goto break_getpscomment
               )
           for /l %%x in (0,2,9999) do (
               if "!opt:~%%x,2!"=="" goto break_getpscomment
               set ret=!ret!=!opt:~%%x,2!
               )
           )
       goto break_getpscomment
       )
   :break_getpscomment
   if not "!ret!"=="" (
       set ret=%ret:*%that%=%
       call :trim "!ret!"
       set ret=!trim!
       )
   endlocal & set %out%=%ret%
   exit /b
   }

:iconv (from,to,input) {
   @@rem Процедура коневертации кодировок, через файл для универсальности
   @@rem
   setlocal
   chcp 866> nul
   set out=%~0
   if "%out:~0,1%"==":" (
       set out=%out:~1%
       ) else (
       set out=out
       )
   if /i "%~1"=="utf8" (
       set code=65001
       ) else if /i "%~1"=="utf-8" (
       set code=65001
       ) else if /i "%~1"=="cp1251" (
       set code=1251
       ) else if /i "%~1"=="cp866" (
       set code=866
       ) else if /i "%~1"=="iso-8859-5" (
       set code=28595
       ) else if /i "%~1"=="koi8-r" (
       set code=20866
       ) else if not "%~1"=="" (
       set code=%~1
       ) else (
       set code=1251
       )
   if /i "%~2"=="utf8" (
       set tocode=65001
       ) else if /i "%~2"=="utf-8" (
       set tocode=65001
       ) else if /i "%~2"=="cp1251" (
       set tocode=1251
       ) else if /i "%~2"=="cp866" (
       set tocode=866
       ) else if /i "%~2"=="iso-8859-5" (
       set tocode=28595
       ) else if /i "%~2"=="koi8-r" (
       set tocode=20866
       ) else if not "%~2"=="" (
       set tocode=%~2
       ) else (
       set tocode=1251
       )
   set outtype=file
   set utf16=%temp%\%RANDOM%.utf-16
   set ftemp=%temp%\%RANDOM%.%code%
   if exist "%~3" (
       set stream=type "%~3"
       ) else (
       set outtype=var
       set string="%~3"
       set string=!string:^|=^^^|!
       echo !string:~1,-1!> "%ftemp%"
       set stream=type "%ftemp%"
       )
   call :getfileinfo path "%ScriptFullName%"
   if exist "%getfileinfo%\iconv\iconv.exe" (
       %stream%| "%getfileinfo%\iconv\iconv.exe" -f %~1 -t %~2 > "%ftemp%.%tocode%"
       goto end_iconv
       )
   call :getchar "%ScriptFullName%" "=FF"
   set mark=%getchar%
   call :getchar "%ScriptFullName%" "=FE"
   set mark=%mark%%getchar%
   chcp 866 > nul
   <nul set /p p=%mark%> %utf16%
   chcp %tocode% > nul
   chcp %code% |>> "%utf16%" cmd /u /c "%stream% & chcp %tocode% > nul"
   chcp %tocode% > nul
   type "%utf16%" > "%ftemp%.%tocode%"
   :end_iconv
   chcp 866 > nul
   set ret=%ftemp%.%tocode%
   if /i "%outtype%"=="var" (
       for /f "delims=" %%i in ('type "%ftemp%.%tocode%"') do (
           set ret=%%i
           )
       del /q "%ftemp%.%tocode%"
       )
   if exist "%ftemp%" del /q "%ftemp%"
   if exist "%utf16%" del /q "%utf16%"
   endlocal & set %out%=%ret%
   exit /b 0
   }

:getfileinfo (info,filepath) {
   @@rem ?ЁюЎхфєЁр яюыєўхэш  ётющёЄт Їрщыр
   @@rem
   setlocal
   set out=%~0
   if "%out:~0,1%"==":" (
       set out=%out:~1%
       ) else (
       set out=out
       )
   set info=undefined
   set opt=%~1
   if /i "%opt%"=="name" (
       set info=%~n2
       ) else if /i "%opt%"=="ext" (
       set info=%~x2
       ) else if /i "%opt%"=="fname" (
       set info=%~nx2
       ) else if /i "%opt%"=="fpath" (
       set info=%~f2
       ) else if /i "%opt%"=="spath" (
       set info=%~s2
       ) else if /i "%opt%"=="size" (
       set /a info=0
       set /a info=%~z2 2> nul
       ) else if /i "%opt%"=="drive" (
       set info=%~d2
       ) else if /i "%opt%"=="folder" (
       set info=%~p2
       ) else if /i "%opt%"=="path" (
       set info=%~dp2
       )
   set /a ret=1
   if exist "%~2" set /a ret=0
   endlocal & set %out%=%info%
   exit /b %ret%
   }

:getchar (table,asc) {
   @@rem Процедура получения нужного символа по коду
   @@rem
   setlocal
   set out=%~0
   if "%out:~0,1%"==":" (
       set out=%out:~1%
       ) else (
       set out=out
       )
   set char=
   set table=%~1
   set asc=%~2
   for /f "tokens=2" %%u in ('%find%"####" "%table%" ^| %find%"%asc%"') do (
       set char=%%u
       )
   endlocal & set %out%=%char%
   exit /b 0
   }
goto :eof

#Table characters
#### \0 =00
####   =01
####   =02
####   =03
####   =04
####   =05
####   =06
####   =07
####   =08
#### \t =09
#### \n =0A
####  =0B
####  =0C
#### \r =0D
####   =0E
#### д  =0F
####   =10
####   =11
####   =12
####   =13
#### ?  =14
#### з  =15
####   =16
####   =17
####   =18
####   =19
####   =1A
####   =1B
####   =1C
####   =1D
####   =1E
####   =1F
#### \s =20
#### !  =21
#### "  =22
#### #  =23
#### $  =24
#### =  =25
#### &  =26
#### '  =27
#### (  =28
#### )  =29
#### *  =2A
#### +  =2B
#### ,  =2C
#### -  =2D
#### .  =2E
#### /  =2F
#### 0  =30
#### 1  =31
#### 2  =32
#### 3  =33
#### 4  =34
#### 5  =35
#### 6  =36
#### 7  =37
#### 8  =38
#### 9  =39
#### :  =3A
#### ;  =3B
#### <  =3C
#### =  =3D
#### >  =3E
#### ?  =3F
#### @  =40
#### A  =41
#### B  =42
#### C  =43
#### D  =44
#### E  =45
#### F  =46
#### G  =47
#### H  =48
#### I  =49
#### J  =4A
#### K  =4B
#### L  =4C
#### M  =4D
#### N  =4E
#### O  =4F
#### P  =50
#### Q  =51
#### R  =52
#### S  =53
#### T  =54
#### U  =55
#### V  =56
#### W  =57
#### X  =58
#### Y  =59
#### Z  =5A
#### [  =5B
#### \  =5C
#### ]  =5D
#### ^  =5E
#### _  =5F
#### `  =60
#### a  =61
#### b  =62
#### c  =63
#### d  =64
#### e  =65
#### f  =66
#### g  =67
#### h  =68
#### i  =69
#### j  =6A
#### k  =6B
#### l  =6C
#### m  =6D
#### n  =6E
#### o  =6F
#### p  =70
#### q  =71
#### r  =72
#### s  =73
#### t  =74
#### u  =75
#### v  =76
#### w  =77
#### x  =78
#### y  =79
#### z  =7A
#### {  =7B
#### |  =7C
#### }  =7D
#### ~  =7E
####   =7F
#### _  =80
#### _  =81
#### '  =82
#### _  =83
#### "  =84
#### :  =85
#### +  =86
#### +  =87
#### _  =88
#### %  =89
#### _  =8A
#### <  =8B
#### _  =8C
#### _  =8D
#### _  =8E
#### _  =8F
#### _  =90
#### '  =91
#### '  =92
#### "  =93
#### "  =94
####   =95
#### -  =96
#### -  =97
#### _  =98
#### T  =99
#### _  =9A
#### >  =9B
#### _  =9C
#### _  =9D
#### _  =9E
#### _  =9F
#### а  =A0
#### б  =A1
#### в  =A2
#### _  =A3
#### д  =A4
#### _  =A5
#### ж  =A6
#### з  =A7
#### и  =A8
#### c  =A9
#### к  =AA
#### <  =AB
#### м  =AC
#### -  =AD
#### R  =AE
#### п  =AF
#### ?  =B0
#### +  =B1
#### _  =B2
#### _  =B3
#### _  =B4
#### ў  =B5
#### ?  =B6
#### ?  =B7
#### ?  =B8
#### ?  =B9
#### ?  =BA
#### >  =BB
#### _  =BC
#### _  =BD
#### _  =BE
#### ?  =BF
#### ?  =C0
#### ?  =C1
#### ?  =C2
#### ?  =C3
#### ?  =C4
#### ?  =C5
#### ?  =C6
#### ?  =C7
#### ?  =C8
#### ?  =C9
#### ?  =CA
#### ?  =CB
#### ?  =CC
#### ?  =CD
#### ?  =CE
#### ?  =CF
#### ?  =D0
#### ?  =D1
#### ?  =D2
#### ?  =D3
#### ?  =D4
#### ?  =D5
#### ?  =D6
#### ?  =D7
#### ?  =D8
#### ?  =D9
#### ?  =DA
#### ?  =DB
#### ?  =DC
#### ?  =DD
#### ?  =DE
#### ?  =DF
#### р  =E0
#### с  =E1
#### т  =E2
#### у  =E3
#### ф  =E4
#### х  =E5
#### ц  =E6
#### ч  =E7
#### ш  =E8
#### щ  =E9
#### ъ  =EA
#### ы  =EB
#### ь  =EC
#### э  =ED
#### ю  =EE
#### я  =EF
#### Ё  =F0
#### ё  =F1
#### Є  =F2
#### є  =F3
#### Ї  =F4
#### ї  =F5
#### Ў  =F6
#### ў  =F7
#### °  =F8
#### ?  =F9
#### ·  =FA
#### ?  =FB
#### №  =FC
#### ¤  =FD
#### ?  =FE
####    =FF
11 Godofsin
 
13.06.13
12:19
(10) ахренеть
12 Ковычки
 
13.06.13
12:21
(11) найди комплект аденеснега терминальщика и там охреневай
13 Garkin
 
13.06.13
12:27
(9) Почитываю параллельно, пока нет.
14 Garkin
 
13.06.13
12:30
(10) О, как. о_О.
смущает кроме всего остального "в шедулер каждую минуту";
15 Torquader
 
13.06.13
12:36
(14) Ну, можно сценарий повесить, который проверяет директорию на появление новых файлов и печатает их сразу по появлению - будет быстро и просто.
16 Ковычки
 
13.06.13
16:05
(14) можно обойтись без первых двух пунктов, фиктивного принтера и файла, но несколько больше будет пакетный файл в размерах, это есть в наборе "адинеснега терминальщика"
17 Garkin
 
13.06.13
17:59
(12) Не нашел ни одной живой ссылки. :(
Пока поставил PDFCreator. Правда не смог запустить штатную печать сформированного файла на принтер, пришлось печатать скриптом в постобработке.