Что нового

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

HelpMe

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



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

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

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

HelpMe

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

Redline

AutoIT Гуру
Сообщения
506
Репутация
375
Какое расширение у файлов то?
для текста так можно:
Код:
$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
Репутация
375
Список файлов вставь в файл у меня - 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
Репутация
626
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)
 
Верх