Что нового

Печать Множества Файлов

HelpMe

Новичок
Сообщения
85
Репутация
3
Как скриптом задать файл(ы) на печать, на принтер по умолчанию...
список файлов есть в текстовом документе...



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

С:\\*\*001.*
С:\\*\*002.*
С:\\*\*00n.*

Задать на печать....
 
Автор
H

HelpMe

Новичок
Сообщения
85
Репутация
3
посмотрел - теримны мало понятны :(
давай еще....
 

Redline

AutoIT Гуру
Сообщения
506
Репутация
369
Какое расширение у файлов то?
для текста так можно:
Код:
$hFile = FileOpen('c:\list.txt', 0)
$aFile = StringSplit(StringStripCR(StringStripWS(FileRead($hFile), 3)), @LF)
For $i = 1 To $aFile[0]
	ConsoleWrite($aFile[$i] & @CRLF)
	RunWait('print ' & $aFile[$i])
Next

для экселя так:
Код:
$hFile = FileOpen('c:\list.txt', 0)
$aFile = StringSplit(StringStripCR(StringStripWS(FileRead($hFile), 3)), @LF)

$oExcelMain = ObjCreate('Excel.Application')
$oExcelMain.Visible = False
For $i = 1 To $aFile[0]
	$oExcelMain.WorkBooks.Open($aFile[$i])
	$oExcel = ObjGet($aFile[$i])
	$oExcel.Application.ActiveWorkbook.PrintOut
	$oExcel.Close
Next
$oExcelMain.Quit

Многие программы поддерживают командную строку с ключом /print AddobeAcrobat, например:
Код:
Shellexecute (@ProgramFilesDir & '\Adobe\Reader 8.0\Reader\AcroRd32.exe', '/h /t ' & $file, '')
 
Автор
H

HelpMe

Новичок
Сообщения
85
Репутация
3
D:\works\Сканы\ 115595836 13.10.2010 21:26:01 24.11.2010 1:02:07 ~~~~~D
D:\works\Сканы\0085462.pdf 2686937 21.11.2010 0:30:33 21.11.2010 0:30:34 ~~~A~~
D:\works\Сканы\0457391.pdf 1821549 20.11.2010 5:12:07 20.11.2010 5:12:07 ~~~A~~
D:\works\Сканы\0457665.pdf 2540960 20.11.2010 5:10:44 20.11.2010 5:10:45 ~~~A~~
D:\works\Сканы\0471166.pdf 492922 20.11.2010 5:13:49 20.11.2010 5:13:50 ~~~A~~
D:\works\Сканы\0603227.pdf 1811866 20.11.2010 5:11:41 20.11.2010 5:11:42 ~~~A~~
D:\works\Сканы\1424164.pdf 1137236 20.11.2010 5:10:50 20.11.2010 5:10:51 ~~~A~~
D:\works\Сканы\1527445.pdf 1081255 21.11.2010 0:30:01 21.11.2010 0:30:01 ~~~A~~
D:\works\Сканы\1767132.pdf 475359 20.11.2010 5:14:42 20.11.2010 5:14:43 ~~~A~~
D:\works\Сканы\1933191.pdf 551920 20.11.2010 5:15:22 20.11.2010 5:15:22 ~~~A~~
D:\works\Сканы\2271945.pdf 1320546 20.11.2010 5:13:27 20.11.2010 5:13:28 ~~~A~~
D:\works\Сканы\2279130.pdf 3203200 20.11.2010 5:04:58 20.11.2010 5:05:01 ~~~A~~
D:\works\Сканы\2463384.pdf 2267231 20.11.2010 5:12:47 20.11.2010 5:12:48 ~~~A~~
D:\works\Сканы\2464991.pdf 797652 20.11.2010 5:06:34 20.11.2010 5:06:35 ~~~A~~
D:\works\Сканы\2476029.pdf 2253698 20.11.2010 5:16:13 20.11.2010 5:16:14 ~~~A~~
D:\works\Сканы\2495514.pdf 513525 20.11.2010 5:12:52 20.11.2010 5:12:53 ~~~A~~
D:\works\Сканы\2784367.pdf 1255134 21.11.2010 0:29:54 21.11.2010 0:29:55 ~~~A~~
D:\works\Сканы\2784708.pdf 1202980 21.11.2010 0:28:24 21.11.2010 0:28:25 ~~~A~~
D:\works\Сканы\2849774.pdf 2607059 20.11.2010 5:11:24 20.11.2010 5:11:25 ~~~A~~
D:\works\Сканы\2895042.pdf 686373 20.11.2010 5:13:01 20.11.2010 5:13:01 ~~~A~~
D:\works\Сканы\3030275.pdf 2877144 20.11.2010 5:10:20 20.11.2010 5:10:21 ~~~A~~
D:\works\Сканы\3117831.pdf 2029236 21.11.2010 0:29:23 21.11.2010 0:29:24 ~~~A~~
D:\works\Сканы\3118709.pdf 1311599 21.11.2010 0:29:46 21.11.2010 0:29:47 ~~~A~~
D:\works\Сканы\3452530.pdf 901769 20.11.2010 5:15:46 20.11.2010 5:15:47 ~~~A~~
D:\works\Сканы\3454550.pdf 2655326 20.11.2010 5:11:11 20.11.2010 5:11:12 ~~~A~~
D:\works\Сканы\3559209.pdf 634048 20.11.2010 5:09:00 20.11.2010 5:09:01 ~~~A~~
D:\works\Сканы\3622196.pdf 1922061 20.11.2010 5:09:55 20.11.2010 5:09:56 ~~~A~~
D:\works\Сканы\3651662.pdf 1366112 20.11.2010 5:15:00 20.11.2010 5:15:01 ~~~A~~
D:\works\Сканы\3679758.pdf 784009 20.11.2010 5:15:53 20.11.2010 5:15:56 ~~~A~~
D:\works\Сканы\3725583.pdf 1983317 20.11.2010 5:15:06 20.11.2010 5:15:07 ~~~A~~
D:\works\Сканы\3743502.pdf 626839 20.11.2010 5:11:47 20.11.2010 5:11:47 ~~~A~~
D:\works\Сканы\4004307.pdf 1113097 20.11.2010 5:06:04 20.11.2010 5:06:05 ~~~A~~
D:\works\Сканы\4027764.pdf 854202 20.11.2010 5:12:42 20.11.2010 5:12:43 ~~~A~~
D:\works\Сканы\4036888.pdf 1745201 20.11.2010 5:14:53 20.11.2010 5:14:54 ~~~A~~
D:\works\Сканы\4038625.pdf 2990422 20.11.2010 5:09:32 20.11.2010 5:09:33 ~~~A~~
D:\works\Сканы\4043384.pdf 833560 21.11.2010 0:30:25 21.11.2010 0:30:25 ~~~A~~
D:\works\Сканы\4046041.pdf 1384832 21.11.2010 0:29:15 21.11.2010 0:29:15 ~~~A~~
D:\works\Сканы\4065513.pdf 1905708 21.11.2010 0:30:55 21.11.2010 0:30:56 ~~~A~~
D:\works\Сканы\4111838.pdf 1461511 20.11.2010 5:15:30 20.11.2010 5:15:30 ~~~A~~
D:\works\Сканы\4173368.pdf 2077717 21.11.2010 0:29:38 21.11.2010 0:29:39 ~~~A~~
D:\works\Сканы\4322242.pdf 729508 20.11.2010 5:10:01 20.11.2010 5:10:01 ~~~A~~
D:\works\Сканы\4340262.pdf 1676702 21.11.2010 0:29:03 21.11.2010 0:29:04 ~~~A~~
D:\works\Сканы\4351500.pdf 1721529 20.11.2010 5:13:36 20.11.2010 5:13:37 ~~~A~~
D:\works\Сканы\4410263.pdf 1537131 20.11.2010 5:16:24 20.11.2010 5:16:25 ~~~A~~
D:\works\Сканы\4433498.pdf 3330033 21.11.2010 0:30:14 21.11.2010 0:30:15 ~~~A~~
D:\works\Сканы\4476566.pdf 2031238 20.11.2010 5:07:42 20.11.2010 5:07:43 ~~~A~~
D:\works\Сканы\4487379.pdf 960070 20.11.2010 5:10:38 20.11.2010 5:10:39 ~~~A~~
D:\works\Сканы\4675619.pdf 554060 20.11.2010 5:11:35 20.11.2010 5:11:35 ~~~A~~
D:\works\Сканы\4693458.pdf 2954459 20.11.2010 5:16:05 20.11.2010 5:16:06 ~~~A~~
D:\works\Сканы\4697536.pdf 1009805 20.11.2010 5:14:00 20.11.2010 5:14:01 ~~~A~~
D:\works\Сканы\4727483.pdf 3160259 20.11.2010 5:09:42 20.11.2010 5:09:43 ~~~A~~
D:\works\Сканы\4770129.pdf 1014389 20.11.2010 5:09:16 20.11.2010 5:14:19 ~~~A~~
D:\works\Сканы\4776138.pdf 578380 20.11.2010 5:10:33 20.11.2010 5:10:33 ~~~A~~
D:\works\Сканы\4777562.pdf 1073848 20.11.2010 5:07:30 20.11.2010 5:07:31 ~~~A~~
D:\works\Сканы\4841954.pdf 538025 20.11.2010 5:11:59 20.11.2010 5:12:00 ~~~A~~
D:\works\Сканы\4912187.pdf 1033837 20.11.2010 5:11:54 20.11.2010 5:11:54 ~~~A~~
D:\works\Сканы\4921131.pdf 2917470 20.11.2010 5:12:17 20.11.2010 5:12:18 ~~~A~~
D:\works\Сканы\5094513.pdf 1600113 20.11.2010 5:12:37 20.11.2010 5:12:38 ~~~A~~
D:\works\Сканы\5204251.pdf 710958 20.11.2010 5:06:53 20.11.2010 5:06:54 ~~~A~~
D:\works\Сканы\5204542.pdf 1623288 20.11.2010 5:10:12 20.11.2010 5:10:13 ~~~A~~
D:\works\Сканы\5302389.pdf 581195 20.11.2010 5:13:22 20.11.2010 5:13:22 ~~~A~~
D:\works\Сканы\5304037.pdf 1434684 20.11.2010 5:10:07 20.11.2010 5:10:08 ~~~A~~
D:\works\Сканы\5354862.pdf 3262238 20.11.2010 5:10:27 20.11.2010 5:10:27 ~~~A~~
D:\works\Сканы\5481883.pdf 3054906 21.11.2010 0:30:46 21.11.2010 0:30:47 ~~~A~~
D:\works\Сканы\5541743.pdf 3238431 21.11.2010 0:27:35 21.11.2010 0:27:38 ~~~A~~
D:\works\Сканы\5556276.pdf 2269612 20.11.2010 5:13:55 20.11.2010 5:13:56 ~~~A~~
D:\works\Сканы\5590036.pdf 1025035 20.11.2010 5:07:05 20.11.2010 5:07:06 ~~~A~~
D:\works\Сканы\5592434.pdf 709901 20.11.2010 5:10:56 20.11.2010 5:10:56 ~~~A~~
D:\works\Сканы\5610009.pdf 653003 20.11.2010 5:13:42 20.11.2010 5:13:43 ~~~A~~
D:\works\Сканы\5752864.pdf 2175367 20.11.2010 5:14:29 20.11.2010 5:14:30 ~~~A~~
D:\works\Сканы\5764161.pdf 2843166 20.11.2010 5:12:24 20.11.2010 5:12:24 ~~~A~~
D:\works\Сканы\5998366.pdf 3428084 20.11.2010 5:13:11 20.11.2010 5:13:13 ~~~A~~



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

Ток файлы могут находиться в разных папках... я через эксель печатаю, чтоб папки не шарить... просто как гиперссылки задал кликать устал :(
как тупо отправить список на печать?
 
Автор
H

HelpMe

Новичок
Сообщения
85
Репутация
3
с помощью вышесказанного как задать на печать "D:\works\Сканы\0085462.pdf "???



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

ничо не выходить час уже методом тыка пытаюся :((( :'(
 

Redline

AutoIT Гуру
Сообщения
506
Репутация
369
Список файлов вставь в файл у меня - c:\list.txt
Внутри только полные пути к файлам:
Код:
c:\1.pdf
c:\2.pdf
и вот скрипт
Код:
$hFile = FileOpen('c:\list.txt', 0)
$aFile = StringSplit(StringStripCR(StringStripWS(FileRead($hFile), 3)), @LF)
For $i = 1 To $aFile[0]
	Shellexecute(@ProgramFilesDir & '\Adobe\Reader 8.0\Reader\AcroRd32.exe', ' /t ' & $aFile[$i])
Next

Путь до AcroRd32.exe измени если не совпадает.


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

HelpMe [?]
с помощью вышесказанного как задать на печать "D:\works\Сканы\0085462.pdf "
Код:
Shellexecute(@ProgramFilesDir & '\Adobe\Reader 8.0\Reader\AcroRd32.exe', ' /t D:\works\Сканы\0085462.pdf')
 
Автор
H

HelpMe

Новичок
Сообщения
85
Репутация
3
$hFile = FileOpen('c:\list.txt', 0)
$aFile = StringSplit(StringStripCR(StringStripWS(FileRead($hFile), 3)), @LF)
For $i = 1 To $aFile[0]
Shellexecute(@ProgramFilesDir & '\Adobe\Acrobat 6.0\Acrobat\Acrobat.exe', ' /t D:\works\Сканы\0085462.pdf')
Next

не работает :(
 

SyDr

Сидра
Сообщения
651
Репутация
158
Попробуй так:
Код:
$hFile = FileOpen('c:\list.txt', 0)
$aFile = StringSplit(StringStripCR(StringStripWS(FileRead($hFile), 3)), @LF)
For $i = 1 To $aFile[0]
    Shellexecute($aFile[$i], "", "", "print")
Next
 
Автор
H

HelpMe

Новичок
Сообщения
85
Репутация
3
Пробывала еще и так:
Но тоже никак стоит принте и не печатает то что надо :'(


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

SyDr [?]
А урлу где вставлять :laugh: я сума сойду...


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

SyDr сказал(а):
Попробуй так:
Код:
$hFile = FileOpen('c:\list.txt', 0)
$aFile = StringSplit(StringStripCR(StringStripWS(FileRead($hFile), 3)), @LF)
For $i = 1 To $aFile[0]
    Shellexecute($aFile[$i], "", "", "print")
Next
выдает:


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

Redline сказал(а):
Список файлов вставь в файл у меня - c:\list.txt
Внутри только полные пути к файлам:
Код:
c:\1.pdf
c:\2.pdf
и вот скрипт
Код:
$hFile = FileOpen('c:\list.txt', 0)
$aFile = StringSplit(StringStripCR(StringStripWS(FileRead($hFile), 3)), @LF)
For $i = 1 To $aFile[0]
	Shellexecute(@ProgramFilesDir & '\Adobe\Reader 8.0\Reader\AcroRd32.exe', ' /t ' & $aFile[$i])
Next

Путь до AcroRd32.exe измени если не совпадает.


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

HelpMe [?]
с помощью вышесказанного как задать на печать "D:\works\Сканы\0085462.pdf "
Код:
Shellexecute(@ProgramFilesDir & '\Adobe\Reader 8.0\Reader\AcroRd32.exe', ' /t D:\works\Сканы\0085462.pdf')






Сделала как сказал - у меня не получается... /в фоне открывается Акробат/ можно какнить упростить? просто задать на печать... а я уже какнить в экселле большой скрипт напишу, эксель хорошо знаю... какая разница что скрипт писать что фаил лист сохранять...

ну чонить типа :
Скрипты_СКРИПТЫ"Путь_К_ФАЙЛУ"ЕЩЕ_СКРИПТЫ ))) в экселе сцепим :smile:


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

Доигрались - принтер теперь не печатает :'(
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Вот тест. Если будет работать, можно дальше продвигаться.
Код:
;5 этих файлов pdf должны находиться в одной папке со скриптом
$File1 = @ScriptDir&"\111.pdf"
$File2 = @ScriptDir&"\222.pdf"
$File3 = @ScriptDir&"\333.pdf"
$File4 = @ScriptDir&"\444.pdf"
$File5 = @ScriptDir&"\555.pdf"

Shellexecute("AcroRd32.exe", " /P /H " & $File1)
Shellexecute("AcroRd32.exe", " /P /H " & $File2)
Shellexecute("AcroRd32.exe", " /P /H " & $File3)
Shellexecute("AcroRd32.exe", " /P /H " & $File4)
Shellexecute("AcroRd32.exe", " /P /H " & $File5)
 
Автор
H

HelpMe

Новичок
Сообщения
85
Репутация
3
А если разные будут?


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

поясните @ScriptDir& - зачем?
путь же указывается полностью...


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

Ща протестируем :smile: спасибо...


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

$File1 = @ScriptDir&"\3622196.pdf"
Shellexecute("C:\Program Files\Adobe\Acrobat 6.0\Acrobat\Acrobat.exe", " /P /H " & $File1)


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

Ура - ура! Получилось!!!! :IL_AutoIt_1:


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

А если путь укажу на удаленном компютере??
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
А если разные будут?
Это уже не проблема, лишь бы тест работал.
@ScriptDir - получить директорию скрипта. Ведь неизвестно заранее в какой папке скрипт будет.
& - соединить имя директории скрипта с именем файла = полный путь к файлу.

Интересно узнать как отрабатывает на 5-ти файлах.
Нет возможности сейчас протестировать, т.к. физического принтера нет.
 
Автор
H

HelpMe

Новичок
Сообщения
85
Репутация
3
Данная опция очень поможет и сыкономит массу времени,
спасибо Yuriy, Спасибо все: SyDr, Redline и тебе madmasles за лик )
Знала - знала что есть тут добрые люди!


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

$File1 = "D:\works\Сканы\4111838.pdf"
Shellexecute("C:\Program Files\Adobe\Acrobat 6.0\Acrobat\Acrobat.exe", " /P /H " & $File1)

Рабочая версия...


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

Оконьчательно :smile:
Shellexecute("C:\Program Files\Adobe\Acrobat 6.0\Acrobat\Acrobat.exe", " /P /H " & "D:\works\Сканы\4111838.pdf") - то что было нужно! Всем спасибо еще раз...
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Тогда еще один автоматизированный тест.
Надо создать в директории скрипта текстовый файл List.txt.
В нем построчно, для начала штук 5, прописать полные пути к pdf файлам.
Например:
Код:
C:\Documents and Settings\user01\Рабочий стол\111.pdf
C:\Documents and Settings\user01\Рабочий стол\222.pdf
D:111.pdf
D:\333.pdf
Запустить этот скрипт:
Код:
$file = FileOpen(@ScriptDir&"\List.txt", 0) ;открыть файл List.txt для чтения

If $file = -1 Then
    MsgBox(16, "Ошибка", "Не удалось открыть файл ")
    Exit
EndIf

While 1
    $line = FileReadLine($file);читаем открытый файл построчно в переменную $line
    If @error = -1 Then ExitLoop;выйти из цикла после прочтения всех строк	
    Shellexecute("AcroRd32.exe", " /P /H " & $line);выполнить команду с подстановкой строки (полный путь к pdf файлу из списка) из переменной $line
Wend

FileClose($file);закрыть ранее открытый файл List.txt
 
Автор
H

HelpMe

Новичок
Сообщения
85
Репутация
3
Не - самое лучшее уже указали, скрипт будет писаться в экселе... столкнулась с проблемой вывода на виртуальный принтер :(
и боюсь еще сктолкнусть с проблемой сохранения одинаковых файлов :'(
Проблем с ошибками не будет... предварительная проверка на наличее файлов исключит ее...


Указываю принтер по умолчанию Adobe PDF а всёравно печатает в Каноне - что делать?


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

Нет принтера - нет проблемы :rofl: решено...


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

У кого есть менее радикальные решения?


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

Работает просто здорово - не хватает эмоций... аж ком тормозит )))
 
Автор
H

HelpMe

Новичок
Сообщения
85
Репутация
3
Часть файлов не печатает :(
Вероятно из - за того что Все файлы не успевают задаваться на печать...
что делать? пробывала вот это...

Shellexecute("C:\Program Files\Adobe\Acrobat 6.0\Acrobat\Acrobat.exe", " /P /H " & "\\Server\архив (d)\works\1\8389952-2.pdf")
WinWait("Creating Adobe PDF")

из ста получается только 20

потом пробывала так:
Shellexecute("C:\Program Files\Adobe\Acrobat 6.0\Acrobat\Acrobat.exe", " /P /H " & "\\Server\архив (d)\works\1\8389952-2.pdf")
WinWait("Creating Adobe PDF")
WinWaitClose("Creating Adobe PDF")
После первого файла Скрипт больше ничего не делает...


что делать?
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
HelpMe
для начала начать уже использовать тэги для обрамления кода
 
Автор
H

HelpMe

Новичок
Сообщения
85
Репутация
3
про окончании печати выходит Внизу экрана уведомление (Ну такое же выходит когда сетевой кабель не подключен):
title: Your PDF file "8389359-2.pdf" has been created.
Class: tooltips_class32

другой информации нет... можно ли это какнить использывать?


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

Kaster сказал(а):
HelpMe
для начала начать уже использовать
Только это поняла...


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

title: Your PDF file "8389359-2.pdf" has been created.
Меняется каждый раз...


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

Помогите сделать обрамление кода... :scratch:


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

Kaster сказал(а):
HelpMe
для начала начать уже использовать тэги для обрамления кода
Что я могу сделать если
WinWaitClose("Creating Adobe PDF") Не срабатывает? Задумывалось что сработает...
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Вероятно из - за того что Все файлы не успевают задаваться на печать...
Ну попробуй с приостановками 1-2 секунды. Хотя это не выход.
Код:
Sleep(1000) ;остановка на 1 секунду

Пример:
Код:
$file = FileOpen(@ScriptDir&"\List.txt", 0) ;открыть файл List.txt для чтения

If $file = -1 Then
    MsgBox(16, "Ошибка", "Не удалось открыть файл ")
    Exit
EndIf

While 1
    $line = FileReadLine($file);читаем открытый файл построчно в переменную $line
    If @error = -1 Then ExitLoop;выйти из цикла после прочтения всех строк  
    Shellexecute("AcroRd32.exe", " /P /H " & $line);выполнить команду с подстановкой строки (полный путь к pdf файлу из списка) из переменной $line
Sleep(1000) ; пауза 1 секунда
Wend

FileClose($file);закрыть ранее открытый файл List.txt


Или:
Код:
;5 этих файлов pdf должны находиться в одной папке со скриптом
$File1 = @ScriptDir&"\111.pdf"
$File2 = @ScriptDir&"\222.pdf"
$File3 = @ScriptDir&"\333.pdf"
$File4 = @ScriptDir&"\444.pdf"
$File5 = @ScriptDir&"\555.pdf"

Shellexecute("AcroRd32.exe", " /P /H " & $File1)
Sleep(1000) ; пауза 1 секунда
Shellexecute("AcroRd32.exe", " /P /H " & $File2)
Sleep(1000) ; пауза 1 секунда
Shellexecute("AcroRd32.exe", " /P /H " & $File3)
Sleep(1000) ; пауза 1 секунда
Shellexecute("AcroRd32.exe", " /P /H " & $File4)
Sleep(1000) ; пауза 1 секунда
Shellexecute("AcroRd32.exe", " /P /H " & $File5)
 
Верх