ubuntu + 1Cv8 + winXP-7-8. Решение проблемы с печатью на расшаренные принтеры клиентов

29.04.16

База данных - Инструменты администратора БД

Принтеров и операционок много, драйверов под Ubuntu на всех не хватает.
Возникла идея печатать cups-PDF, в расшаренную по smb папку. Написать программу под винду, которая будет мониторить эту папку и в зависимости от пользователя печатать *.pdf на принтер, указанный для данного пользователя. Текущая версия программы 1.3

Часть первая. Продолжение данной статьи читайте ubuntu + 1Cv8 + winXP-7-8. Печать на электронную почту

Спасибо людям, благодаря которым возникла данная статья: Atheist, Landre за дельные подсказки neomatrix, со статьи которого Установка терминального сервера на базе Ubuntu Server 12.04 LTS 64-bit для работы c платформой 1C 8.3 все и началось.

При переходе с Windows server  на Ubuntu возникли проблемы печати. Оказалось, что в отличие от винды драйвера под Ubuntu либо есть не всегда, либо работают плохо. Печать на расшаренные принтеры виндовых клиентов из-под Ubuntu - вообще отдельная тема.

Рекомендация: Если Вы только собираетесь переходить на Linux и есть возможность купить принтер - покупайте принтеры HP с сетевым интерфейсом (RJ-45) это избавит Вас от головной боли с печатью. Если принтеры уже куплены - читайте дальше.

Настраиваем Ubuntu Server: Предполагаем, что сервер имеет ip 192.168.1.100

Устанавливаем систему печати в PDF

sudo apt-get install cups-pdf

Устанавливаем Samba:

sud apt-get install samba samba-common system-config-samba

Если Вы ставили терминальный сервер поверх десктопной версии Ubuntu, следующие два пункта можете пропустить, если ставили поверх Ubuntu Server - нужно будет отключить защиту cups-pdf. Иначе невозможно будет изменить каталог назначения для pdf-файлов.

Устанавливаем набор программ для работы с apparmor

sudo apt-get install apparmor-utils

Отключение защиты для модуля usr.sbin.cupsd

sudo aa-complain /etc/apparmor.d/usr.sbin.cupsd

Создаем каталог для печати, который потом сделаем доступным для виндовых клиентов, и делаем его доступным для всех.

sudo  mkdir /srv/samba/pdf

sudo chmod -R 2777 /srv/samba/pdf

sudo chown -R root:sambashare /srv/samba/pdf

Далее редактируем файл /etc/cups/cups-pdf.conf

Для начала сохраняем резервную копию.

sudo cp /etc/cups/cups-pdf.conf /etc/cups/cups-pdf.conf.bak

Редактируем файл настроек cups-pdf

sudo nano /etc/cups/cups-pdf.conf

Далее в файле меняем опции:

Out /srv/samba/pdf/${USER}

Label 2

AnonUMask 0000

UserUMask 0000

Сохраняем файл и рестартуем cups.

sudo service cups restart

Далее Пуск->Настройки-Samba (У меня XFCE4)

Samba1

Поскольку каталог будет мониториться программой, видимость предоставлять не обязательно, и даже не желательно.

Samba2

 sudo sevice smbd restart

 Все, на этом настройка линуксовой части закончена. Переходим к настройке винды.

 


 

Рекомендация: Все файлы, которые вы качаете из интернета проверяйте на virustotal.com . Это не защитит на 100 %, но вероятность заражения резко уменьшается. 

 

В качестве виндового сервера печати я использовал "старушку" с win XP. Не принципиально. Можно выбрать любую клиентскую машину и поставить все на нее.

Ставим на нее все сетевые принтеры всех пользователей.

Printer1

 

Устанавливаем Foxit Reader. Foxit Reader должен быть версии не ниже 2.3. Именно старую версию я рекомендую использовать, потому что она меньше и быстрее. Вобщем, yandex в помощь.

 

Качаем архив old.viptextil.ru/Admin/PdfPrint/PdfPrint.zip

Программа портабельная. Распаковываем в какую нибудь папку.

Настройка программы сводится к редактированию двух INI-файлов.

Редактируем PdfPrint.ini

# BackupDir - если указать каталог, то после распечатки файлы будут переноситься в этот каталог (для отчетности)
# если BackupDir оставить пустым - файлы после распечатки будут удаляться.
BackupDir=

# PdfRootDir - каталог, в который сохраняет файлы cups-pdf, но только снаружи (с точки зрения винды)
# Если адрес линуксового сервера статический - рекомендую ссылаться на сервер через его IP
PdfRootDir=\\192.168.1.100\pdf\

# Маска файлов, создаваемых cups-pdf (именно такая получается при опции Label 2 в cups-pdf.conf)
PdfMask=job_*.pdf

# Принтер по-умолчанию, именно на него будут отправляться все задания от новых пользователей и пользователей не указанных в UserPrinter.ini
DefaultPrinter=HP LaserJet P2050 Series PCL6

# Задержка между опросами PdfRootDir в секундах. Задержка отправки задания печати на принтер будет составлять 2-3 LoopDelaySec
LoopDelaySec=3

# Путь к программе FoxitReader.exe

FoxitReader=c:\Program Files\Foxit Software\Foxit Reader\FoxitReader.exe


#текущее название программы mailsend

MailSend=mailsend1.18.exe


# настройки для gmail.com . Отправка почты осуществляется с ящика googlename@gmail.com
#MailParam=  -enc-type "7bit" -sub "PdfPrint ServName" -f googlename@gmail.com -ssl -port 465 -smtp smtp.gmail.com -auth -user googlename -pass "GoogleUserPass"

 
# настройки для mail.ru .  Отправка почты осуществляется с ящика mailuser@mail.ru
#MailParam=  -enc-type "7bit" -sub "PdfPrint ServName" -f mailuser@mail.ru -ssl -port 465 -smtp smtp.mail.ru -auth -user mailuser@mail.ru -pass "MailUserPass"


#настройки yandex.ru.   Отправка почты осуществляется с ящика yandexuser@yandex.ru
MailParam=  -enc-type "7bit" -sub "PdfPrint ServName" -f yandexuser@yandex.ru -ssl -port 465 -smtp smtp.yandex.ru -auth -user yandexuser@yandex.ru -pass "YandexUserPass"


# Примерный Размер лог-файла в килобайтах. Если 0 - лог файл не создается.
LogSizeKB=1000

# LogLevel 0,1,2,3 default 1. 0=no log, 1=status, 2=error, 3=debug
LogLevel=3

 

Редактируем файл UserPrinter.ini

 

User1=HP LaserJet P2050 Series PCL6
User2=user2@usermail.ru
User3=user3@usergmail.com
User4=HP LaserJet Professional M1212nf MFP
User5=HP LaserJet Professional M1212nf MF


Функционал программы, по отправке файлов на электронную почту описан во второй части статьи ubuntu + 1Cv8 + winXP-7-8. Печать на электронную почту.

User1, User2... User5 это пользователи терминального (и не только) сервера Ubuntu, которые печатают на принтер cups-pdf. Если печатает пользователь, не указанный в файле UserPrinter.ini, его файл буде отправлен на принтер по-умолчанию (указан в файле PdfPrint.ini)

Чтобы было меньше ошибок, рекомендую копировать названия принтеров:

На принтере клик правой кнопкой мыши, свойства

Printer2

 

После того, как все настроено, нужно проверить все в "ручном режиме".

На Ubuntu Server, напечатаем какой-нибудь документ на принтер PDF.

Из под винды провинды проверим, что файл был создан \\192.168.1.100\pdf\User1

Пуск->Выполнить

Выполнить

Находим файл, который только что распечатали, и САМОЕ ГЛАВНОЕ пробуем его удалить.

Если файл защищен от записи, проверяем права доступа на папку и разрешение на запись в Samba.

До тех пор, пока файл не будет нормально удаляться из-под винды, программу PdfPrint.exe запускать нельзя, иначе принтер будет печатать это задание постоянно.

Если все удаляется - запускаем программу PdfPrint.exe и она начинает Работать. Для начала очень полезно просмотреть LOG программы (файл PdfPrint.log в каталоге программы PdfPrint).

Внимание, программа PdfPrint не отбражается в Taskbar, поэтому вырубить ее можно только через диспетчер задач (процесс PdfPrint.exe)

Напомню, что на новых операционках (7-10) программа, помещенная в автозагрузку может не запускаться автоматически, если не отключен UAC. Возможно программу можно запускать через планировщик задач.

Со временем, если программа будет кому-нибудь интересна, оформлю ее в виде windows-службы.

Linux Ubuntu Terminal server Windows cups-pdf printer pdf Foxit Reader

См. также

SALE! 15%

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 7140 руб.

20.08.2024    7876    59    23    

69

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 18.09.2024, версия 1.2

16800 руб.

06.12.2023    8884    42    5    

74

SALE! 15%

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 8500 руб.

10.11.2023    10464    36    25    

61

SALE! 35%

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

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

4800 3120 руб.

14.01.2013    188060    1140    0    

912

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    32708    106    152    

73

Архивирование (backup) Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней. Только для WINDOWS!

6000 руб.

06.11.2012    72806    627    45    

85

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

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

4200 руб.

10.11.2015    62839    94    59    

79

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

Многие сталкиваются с проблемой когда изображения, находящиеся в базе разные по объему и размерам. Менеджеры могут добавить файлы в очень высоком разрешении, объемом свыше 20 Мегабайт. База данных становится слишком большой, выгрузка на сайт идёт медленно и требуется много место на хостинге. Как сжать картинки и уменьшить размер базы 1С? Это можно сделать с помощью данной обработки. Существует возможность выбрать различные варианты для того чтобы уменьшить картинки: в разы, в процентах от первоначального объема, а также сделать картинки одинаковой ширины. В результате размер базы 1С значительно сократится (в зависимости от количества и размера картинок), а изображения станут небольшого объема, равными по ширине, почти без потери качества. Работает на управляемых формах для УТ 11, КА, ERP.

3000 руб.

21.07.2022    9844    7    4    

15
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. kns77 103 06.02.16 20:59 Сейчас в теме
2. viptextil 42 08.02.16 09:37 Сейчас в теме
(1) kns77, Спасибо, идея, видимо, витала в воздухе.
3. Demonster 10.02.16 11:30 Сейчас в теме
Велосипед в кубе. Что мешает поставить принт-серверы и печатать напрямую?

В статье не указаны подводные камни этого "изобретения":
1. Компьютеры с Windows должны быть членами домена или иметь одну и ту же учетную запись, указанную в ubuntu.
2. Сможет ли кто-то после Вас это решение поддерживать? Вы его задокументировали и вместе с исходниками отправили своему руководителю/работодателю?
Или это специально сделано, чтобы не уволили, а если уволят - то будут кланятся?
Подсчитайте время, потраченное на реализацию и установку этого "решения" и сравните со стоимостью самого простого принт-сервера.

P.S. У Вас в статье упоминаются принтеры HP - драйвера на linux есть на все модели. Единственное оправдание этого велосипеда - какой-нибудь GDI принтер типа Canon, Samsung и т.п., под который нет драйвера на linux. Но я бы в этом случае убедил бы руководство купить б/у HP, а эти принтеры продать как можно скорее.
4. viptextil 42 10.02.16 18:35 Сейчас в теме
(3)Demonster, спасибо за отзыв.
Что мешает поставить принт-серверы и печатать напрямую?
Отсутствие нескольких принтсерверов.
1. Компьютеры с Windows должны быть членами домена или иметь одну и ту же учетную запись, указанную в ubuntu.
Только один компьютер (на котором размещена PdfPrint должен иметь учетную запись ubuntu Доступ к принтерам клиентов идет уже с него. При подключении принтеров пароли можно запоминать.
2. Сможет ли кто-то после Вас это решение поддерживать? Вы его задокументировали и вместе с исходниками отправили своему руководителю/работодателю?
Именно это я и сделал, опубликовав статью на популярном сервисе.
Подсчитайте время, потраченное на реализацию и установку этого "решения" и сравните со стоимостью самого простого принт-сервера.
Развертывание программы занимает час-полтора. Программу я писал в рабочее время. Я хороший администратор, свободного времени у меня много. Для фирмы это не стоит ничего.
P.S. У Вас в статье упоминаются принтеры HP - драйвера на linux есть на все модели.
У меня складывается ощущение, что статью читали Вы не очень внимательно ;-)
Единственное оправдание этого велосипеда - какой-нибудь GDI принтер типа Canon, Samsung и т.п., под который нет драйвера на linux. Но я бы в этом случае убедил бы руководство купить б/у HP,
Фирма развивалась постепенно. У меня большой зоопарк принтеров В основном Canon. Именно после попыток их настроить я и написал программу.
Но я бы в этом случае убедил бы руководство купить б/у HP, а эти принтеры продать как можно скорее.
В моем городе не найти 10 Б/У принтеров HP.
5. Ruvim 07.04.16 05:32 Сейчас в теме
Доброго времени суток. Попробовал данную идею реализовать, но дело в том что pdf файлы кидаются в папку по имени терминального *user*, а не в папку pdf. Соответственно ничего не печатается. Если в самбе указать путь /srv/samba/pdf*user* то все работает. Что я сделал не так?
viptextil; +1 Ответить
6. viptextil 42 07.04.16 10:52 Сейчас в теме
(5) Ruvim, Все так и должно быть.
Допустим, у вас пользователь user_buh
Тогда файлы должны появляться в папке /srv/samba/pdf/user_buh

На виндовой машине в конфигурационном файле UserPrinter.ini должна быть запись
user_buh=Название_Вашего_Принтера.

Ну, и желательно посмотреть лог-файл PdfPrint.log в каталоге виндовой программы.

Если есть возможность, киньте сюда от последней записи " ### Start PdfPrint"
7. Ruvim 11.04.16 04:39 Сейчас в теме
Дело в том что папки у меня создаются не в pdf, а рядом

(6) viptextil, 20160411-103615 ### Start PdfPrint v1.2 freeware © viptextil.ru 2016
20160411-103615 BackupDir=
20160411-103615 PdfRootDir=\\192.168.2.117\pdfterm1
20160411-103615 PdfMask=job_*.pdf
20160411-103615 PdfRegMask=job_.*\.pdf$
20160411-103615 DefaultPrinter=HP Universal Printing PCL 5
20160411-103615 FoxitReader=c:\Progra~2\Foxits~1\Foxitr~1\Foxitr~1.exe
20160411-103615 LogSizeKB= 1000
20160411-103615 LoopDelaySec= 3
20160411-103615 LogLevel= 3
20160411-103615 User=term1, Printer=HP Universal Printing PCL 5
20160411-103615 User=pdfdkmc, Printer=HP Universal Printing PCL 5
Прикрепленные файлы:
8. Ruvim 11.04.16 05:50 Сейчас в теме
Разобрался, в файле cups-pdf.conf по вышеприведенной инструкции нужно поменять опции Out /srv/samba/pdf${USER}, вот когда так прописать то пользовательские папки будут появляется около основной папки pdf, поменял на Out /srv/samba/pdf/pdf${USER}, папки пользователей стали создаваться в папке pdf (\\192.168.2.117\pdf\pdfterm1) и все заработало. Спасибо.

И еще такой вопрос, у нас работа в браузере, ведется, вот при подключении через RDP страницы пролистываются с торможением, есть ли способ убыстрить как-то.
9. viptextil 42 11.04.16 09:06 Сейчас в теме
(8) Ruvim, Спасибо, мой косяк, пропустил слэш
опцию следует читать как Out /srv/samba/pdf/${USER}

Сейчас исправлю в тексте.

По-поводу браузера ничего сказать не могу. У меня работает так же как на локальной машине. Возможно что-то с драйверами видеокарты.
11. Ruvim 11.04.16 09:30 Сейчас в теме
(9) viptextil, Спасибо вам большое, за такие понятные инструкции, честно говоря я первый раз по вашей статье установил Ubuntu и настроил терминал. Все понятно. Сделал с первого раза. И еще один вопрос, правда по статье установка Ubuntu там выписали "но в терминале возникли проблемы с переключением языков клавиатуры. Для решения редактируем файл /etc/X11/Xsession" Проблема в том, что пользователи при отключении не выходят из системы, а просто закрывают RDP и при повторном подключении, язык ввода уже не переключается. С этим что-то можно сделать?
12. viptextil 42 11.04.16 09:43 Сейчас в теме
(11) Ruvim, Спасибо, конечно, но статья по установке терминального сервера не моя, а уважаемого
neomatrix, спасибо ему за это. Я тоже не решил проблему с русским языком, поэтому в панели быстрого запуска поставил кнопочку "Рус/лат", по которой выполняется команда setxkbmap -layout "us,ru" -model "pc105" -option "grp:ctrl_shift_toggle,grp_led:scroll" и объяснил бухгалтерии, что ее нужно нажимать, когда перестает переключаться язык.

Но это к теме не относится, это нужно обсуждать в комментах к установке терминального сервера.
10. viptextil 42 11.04.16 09:27 Сейчас в теме
(8) Ruvim, Измените опцию в файле /etc/cups/cups-pdf.conf
на Out /srv/samba/pdf/${USER}

в файле PdfPrint.ini задайте
PdfRootDir=\\192.168.2.117\pdf

в файле UserPrinter.ini задайте
term1=Printer=HP Universal Printing PCL 5
dkmc=HP Universal Printing PCL 5
Оставьте свое сообщение