Пакетная печать изображений с помощью IrfanView

27.09.10

Задачи пользователя - Пакетная печать

Встал вопрос с печатью большого количества изображений. Печать через наполнение табличного документа иногда приводила к падению 1Ски из-за нехватки памяти, после этого был выбран способ печати через IrfanView.

Скачать файлы

Наименование Файл Версия Размер
Файл обработки
.epf 501,24Kb
128
.epf 501,24Kb 128 Скачать

Алгоритм работы:

1. На входе: 

  •  
    • Массив полных путей к файлам-изображениям (по отношению к клиентской части даже для клиент-серверного варианта работы)
    • Имя принтера для печати (Необязательно. Если пустое, то подставляется принтер по-умолчанию)
    • Флаг использования сжатия (при подготовке файлов к печати они конвертируются в .tif со сжатием или без, использование сжатия уменьшает трафик для сетевого принтера, но возможно ухудшение качества)

2. Во временной папке создается/находится приложение IrfanView и ini-файл настроек

3. Во временной папке создается еще одна папка и туда конвертируются все файлы для печати. Конвертирование происходит в черно-белый .tif . При использовании сжатия файлы весят в 10 раз меньше исходных (примерно, исходные были jpegи), без сжатия больше в 8-25 на тех же файлах

4. Подается команда печать папки и управление переходит драйверам принтера

5. Удаляется папка с tifами

 

Обработка выполнена под 8.2. Для работы в упр. режиме можно открыть как внешнюю обработку, в обычном нужно прикрутить к конфигурации.

 

Пример вызова из конфы: 

Процедура ПечатьИзображений( пМассивИзображений , пИмяПринтера , пИспользоватьСжатие = Истина )

 

    ПараметрыФормы = Новый Структура;

    ПараметрыФормы.Вставить("МассивИзображений", пМассивИзображений);

    ПараметрыФормы.Вставить("ИмяПринтера", пИмяПринтера);

    ПараметрыФормы.Вставить("ИспользоватьСжатие", пИспользоватьСжатие);

    ОткрытьФорму("Обработка.ксПечатьИзображений.Форма.Форма", ПараметрыФормы);

 

КонецПроцедуры

 

 

 

 

См. также

SALE! 25%

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 15300 руб.

06.10.2023    7256    21    6    

39

Программа групповой печати чеков ККМ Атол и Штрих из текстового файла, поддержка 54-ФЗ от 01.07.19

Пакетная печать ККМ Кассовые операции Загрузка и выгрузка в Excel Россия Бухгалтерский учет Платные (руб)

Предназначена для групповой печати чеков. Что печатать в теле чека описано в текстовом файле с разделителем запятая (CSV) Подходит для любого языка программирования который умеет записывать в текстовый файл

2000 руб.

26.07.2019    24956    38    17    

23

Групповая печать чеков из банковской выписки с настройкой (БП 3.0)

Пакетная печать Банковские операции Кассовые операции Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Платные (руб)

Обработка для групповой печати чеков ККМ с настройкой, загруженных из банковской выписки. На основании документа Поступление на расчетный счет!

4800 руб.

21.08.2019    19816    69    10    

23

Журнал учета ТТН (исходящих и от поставщика) для Бухгалтерии предприятия, редакция 3.0

Пакетная печать Документооборот и делопроизводство (СЭД) Оптовая торговля Печатные формы Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Обработка содержит новую форму Транспортной накладной с 01.01.2021 г. (в ред. Постановления Правительства РФ от 30.11.2021 № 2116) В отличие от внешних печатных форм, подключаемых к документу реализации, позволяет вести отдельный журнал документов. Дополнительным преимуществом является возможность формирования документов за поставщика.

2280 руб.

15.04.2014    52561    50    50    

38

Групповая пакетная печать документов "Реализация товаров и услуг" и связанных с ними "Счетов-фактур"

Пакетная печать Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием Россия Платные (руб)

Работаете с сетями, у каждой из которых свои требования к оформлению документов? Клиент попросил перепечатать документы за год? Печатаете по 100-500 документов в день, тогда эта обработка Вам просто необходима. Данная обработка позволит Вам сэкономить время при больших объемах печати документов по отгрузке товаров и не только.

1000 руб.

29.09.2016    35800    20    5    

22

Печать непроведенных документов для УТ, КА, ERP. Настройка печати по пользователям, документам и печатным формам

Пакетная печать Печатные формы Адаптация типовых решений Универсальные функции Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Абонемент ($m)

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    2069    21    progmaster    7    

3

Пакетная выгрузка стандартных бухгалтерских отчетов

Пакетная печать Регламентированный учет и отчетность Файловый обмен (TXT, XML, DBF), FTP Загрузка и выгрузка в Excel Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Налоговый учет Платные (руб)

Быстрое формирование сразу нескольких видов стандартных бухгалтерских отчетов - .Анализ счета, Карточка счета, Оборотно-сальдовая ведомость по счету, Отчет по проводкам. В периоды проведения проверок со стороны ФНС в деятельности предприятий часто возникает необходимость предоставления сведений из бухгалтерского учета. Обработка сократит время на формирование отчетов бухгалтеру.

6000 руб.

30.03.2023    6075    4    0    

6

Печать на стороне сервера при помощи Ghostscript

Инструментарий разработчика Пакетная печать Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Пример выполнения печати на принтер на сервере 1С используя библиотеку Ghostscript

1 стартмани

17.10.2022    4014    19    prog-1s    1    

8
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Stepa86 1521 27.09.10 11:02 Сейчас в теме
ЗЫ Аккуратней с лицензией на IrfanView :!:
2. v.l. 434 27.09.10 17:10 Сейчас в теме
Опоздал я.
В нашей базе такая штука печати сертификатов с февраля работает.
Запускается Ирфан с именем файла сертификата в параметре командной строки.
3. Stepa86 1521 27.09.10 17:16 Сейчас в теме
(2) Основная идея не в печати с помощью программки одной картинки (с тем же успехом можно и просмотрщиком винды распечатать), а оптом и с минимальным трафиком по сетке... вроде 500 картинок минут за 7 посылает полностью на принтер у нас
4. v.l. 434 30.09.10 14:16 Сейчас в теме
у меня под рукой нет 8.2. Можете дать строку с запуском Вьюера?

У меня это сделано так:

ЗапуститьПриложение("C:\Program Files (x86)\IrfanView\i_view32.exe "+СокрЛП(ПолноеИмяФайла)+"/resample /aspectratio /print", , Истина);


Обратите внимание на третий параметр - он заставляет 1С ждать, пока не выполнится программа. Без него в очередь принтера посылаются все файлы. Но не факт, что они напечатаются в порядке их очереди, т.к. Ирфан запускается как параллельный процесс и потому могут быть небольшие задержки, во время которых свою картинку на принтер может послать другой параллельный процесс.
5. Stepa86 1521 30.09.10 15:26 Сейчас в теме
(4)
&НаКлиенте
Процедура ПечатьФайловЧерезIrfanView( пПутиКФайлам , пИмяПринтера )
	
	Состояние( "Передача файлов на печать принтеру" );
	
	Для Каждого цСтрока Из пПутиКФайлам Цикл
		
		Сценарий = Объект.ПутьКИсполняемомуФайлу + " """ + цСтрока + """ /ini=""" + ПолучитьПутьИниФайла() + """ /print=""" + пИмяПринтера + """";
		
		ЗапуститьПриложение( Сценарий , ПолучитьПутьПоУмолчанию() , Истина );
		
	КонецЦикла;
	
КонецПроцедуры
Показать


в массиве приходит адрес папки (не файла, а папки с файлами), которые нужно напечатать
11. ksai 09.02.12 12:34 Сейчас в теме
(5)

Каким образом вот это:

в массиве приходит адрес папки (не файла, а папки с файлами), которые нужно напечатать


соотносится с описанием:

1. На входе:
Массив полных путей к файлам-изображениям (по отношению к клиентской части даже для клиент-серверного варианта работы)


Всё-таки что должно быть в передаваемом массиве - пути к файлам или адрес папки?
12. Stepa86 1521 09.02.12 13:26 Сейчас в теме
(11) в (5) описание внутренностей и это описано в топике:

"3. Во временной папке создается еще одна папка и туда конвертируются все файлы для печати. Конвертирование происходит в черно-белый .tif . При использовании сжатия файлы весят в 10 раз меньше исходных (примерно, исходные были jpegи), без сжатия больше в 8-25 на тех же файлах
4. Подается команда печать папки и управление переходит драйверам принтера"

На вход самой обработки нужно подавать массив имен файлов. А вообще код открыт и достаточно не сложен, можно легко адаптировать под себя и разобраться что именно там происходит.
6. v.l. 434 30.09.10 15:45 Сейчас в теме
Нет, у меня с папкой не пройдёт - в папке лежат все сертификаты. Разве что их сначала в другую папку копировать, потом уже всю папку запускать - но тогда тоже нет очереди по документам. В смысле, соответствия.
Хотя, если при копировании задавать соответствующее имя... Вариант.

Плюс за идею.
7. Stepa86 1521 30.09.10 16:25 Сейчас в теме
(6) ну собсно все файлы не только конвертятся в тифф в новую папку, но еще и переименовываются в порядке очереди от 1 до ...
8. v.l. 434 01.10.10 08:23 Сейчас в теме
А Вы можете сконвертировать эту обработку для платформы 8.1?
Будет очень интересно.
9. Stepa86 1521 01.10.10 08:35 Сейчас в теме
(8) может на выходных займусь, для 8.1 там все просто, это с 8.2 пришлось повозится с сохранением из макета исполняемого файла, но спросом видимо не будет пользоваться так же... вот если на 7.7 сконвертить...
10. Sirruf 192 17.05.11 16:23 Сейчас в теме
А как установить размер печатаемого изображения по размеру листа А4? Печатается только часть изображения, которая помещается на лист бумаги.
13. пользователь 23.02.12 22:15
Сообщение было скрыто модератором.
...
14. KrakoZyabl 77 27.06.13 15:44 Сейчас в теме
Идея хороша и реализация тоже, взял это на вооружение, долго искал выход, то кресты у меня через макеты печатает то нормально всё не поймешь в чем причина, только одно но...не получается удалить файлы в папке после печати, ругается что файл занят(конфликт блокировок) и как следствие повтор при печати предидущих файлов вместо новых (т.к. не удалились) и еще вот проблемка в дуплексной печати, можно как-то целиком запустить всю папку сразу на печать?(наверное строку нужно формировать из файлов и закладывать в сценарий), а то пофайлово двухсторонней печати не получается(((
15. KrakoZyabl 77 27.06.13 16:20 Сейчас в теме
(14) Извиняюсь, увидел что печатается вся папка сразу, просто дуплекса не получается
16. KrakoZyabl 77 27.06.13 17:33 Сейчас в теме
И с дуплексом разобрался), выгрузил макет ini, поставил Duplex = 2 после загрузил. Как говориться сам с собой поговорил :))) Спасибо )
17. EugenP 25.03.14 15:07 Сейчас в теме
А можно немного подробнее, как побороли проблему Дуплекса
И с дуплексом разобрался), выгрузил макет ini, поставил Duplex = 2 после загрузил.


куда загрузил-то?
у меня в ini файле тоже Duplex = 2,
но каждый файл отдельным заданием и следовательно на отдельной странице выходит
18. CheBurator 3119 25.03.14 16:41 Сейчас в теме
Я так понимаю вы чисто гипотетически обсуждаете, типа долма попробовать...
Прога бесплатна для некоммерческого использования.
Для коммерческого - атата!!!
19. janibeg 2 08.07.15 11:01 Сейчас в теме
Письмо с обработкой не пришло, монетка со счета снялась)
Оставьте свое сообщение