|
последовательная печать отчетов и файлов PDf
|
|||
---|---|---|---|
#18+
Здравствуйте, уважаемые знатоки. Мы в компании реализовали печать комплекта документов и PDF файлов-сканов сертификатов продукции. Первыми на печать отправляются счета-фактуры и товарно-транспортные накладные выводятся через DoCmd.OpenReport. Затем на печать отправляются файлы PDF при помощи Код: vbnet 1. 2.
И возникла проблема. Если необходимо распечатать сразу несколько комплекто на несколько поставок, то получается следующее. Из кода отправляем печать аксесовых отчетов. Они все правильно встают в очередь. Затем печатаем PDF файлы. Они начинают вставать в очередь. Затем мы переходим к печати к следующему документу, начинаем печатать аксесовые документы по следующей поставке. Но в этот момент ещё не была закончена печать PDF файлов из предыдущего комплекта И получается, что вместо правильно отсортированной распечатанной пачки документов, мы получаем пачку с не пойми как разложенными сертификатами. Я попытался задать Sleep. Это помогло, но не сильно. Сотрудникам все равно приходится вручную сортировать документы. Каким образом можно заставить код VBA перейти к печати следующего комлекта только после того, как будет распечатан последний файл PDF ? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2017, 09:26 |
|
последовательная печать отчетов и файлов PDf
|
|||
---|---|---|---|
#18+
Разумная кроватьЗатем на печать отправляются файлы PDF при помощи Код: vbnet 1. 2.
По-моему, этот код открывает файл на просмотр... и то при условии, что .PDF имеется в %PATHEXT%. Или в FilePath сформирована строка запуска связанного приложения и печати файла? Разумная кроватьполучается, что вместо правильно отсортированной распечатанной пачки документов, мы получаем пачку с не пойми как разложенными сертификатами. Я попытался задать Sleep. Это помогло, но не сильно. Сотрудникам все равно приходится вручную сортировать документы. Могу предложить через WMI получать список (ну или просто количество) заданий печати в очереди дефолтного (или нужного) принтера, и инициировать печать следующего документа только когда очередь пуста. Что-то типа: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2017, 10:56 |
|
последовательная печать отчетов и файлов PDf
|
|||
---|---|---|---|
#18+
AkinaРазумная кроватьЗатем на печать отправляются файлы PDF при помощи Код: vbnet 1.
По-моему, этот код открывает файл на просмотр... и то при условии, что .PDF имеется в %PATHEXT%. Или в FilePath сформирована строка запуска связанного приложения и печати файла? У меня тоже вопросы. Этот код гласит - открыть файл в скрытом окне ассоциированного приложения и остановить вызвавший процесс до закрытия приложения. Проверил - показывает (!) файл в окне Акробата. Поэтому: 1. Как вы добились, что файл сразу печатается? 2. Если вызвавший код останавливается до завершения процесса, то как получается, что следующий пакет печатается не дожидаясь его завершения? На заметку - API функция ShellExecute умеет сразу отправлять на печать указанный файл. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2017, 12:03 |
|
последовательная печать отчетов и файлов PDf
|
|||
---|---|---|---|
#18+
Анатолий ( Киев )2. Если вызвавший код останавливается до завершения процесса, то как получается, что следующий пакет печатается не дожидаясь его завершения?Да это как раз понятно как может быть... открылось окно - пустили на печать и закрыли, открылось второе - пустили на печать и закрыли, открылось третье - пустили на печать... а принтер ещё не закончил печать первого, и какой будет напечатан после печати первого (второй или третий) - это лотерея. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2017, 12:09 |
|
последовательная печать отчетов и файлов PDf
|
|||
---|---|---|---|
#18+
AkinaПо-моему, этот код открывает файл на просмотр... и то при условии, что .PDF имеется в %PATHEXT%. Или в FilePath сформирована строка запуска связанного приложения и печати файла? Саму строку запуска на печать я получал вот таким вот образом Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
Ещё хочу добавить, что вчера хотел выложить обновление с Wsh.Run(FilePath, 0, True), а не выложил. Потому используется обычный Shell. Также добавил вчера ещё один Sleep на 20 секунд после печати каждого коплекта, и сегодня(вот только пришла информация) все распечаталось нормально. Идея с просмотром очереди печати. Спасибо большое за неё, если проблемы возникнут снова, попробую сей метод. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2017, 12:47 |
|
|
start [/forum/topic.php?fid=45&fpage=78&tid=1612528]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
others: | 332ms |
total: | 448ms |
0 / 0 |