|
Печать на старый сетевой принтер из 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. Правда не смог запустить штатную печать сформированного файла на принтер, пришлось печатать скриптом в постобработке. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |