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

См. также

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

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

8400 руб.

20.08.2024    16984    119    59    

120

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

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

15000 руб.

10.11.2023    12432    49    33    

70

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 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

18000 руб.

06.12.2023    11372    48    8    

78

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

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

14400 руб.

29.04.2020    34292    109    152    

75

Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 1C:Бухгалтерия Платные (руб)

Брандмауэр для сервера 1С включает в себя управление возможностью начала и возобновления сеансов пользователей по различным условиям, ограничение общего числа возможных сеансов для работы с информационной базой, резервирование возможности работы с информационной базой определенных польззователей, запрет запуска нескольких сеансов для пользователя, журнализация событий начала (возобновления) и завершения (гибернации) сеансов, ведение списка активных сеансов для информационных баз кластера серверов

3600 руб.

06.02.2017    32847    145    18    

51

Архивирование (backup) Инструменты администратора БД Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

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

6000 руб.

06.11.2012    74074    629    45    

88

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

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

3000 руб.

21.07.2022    10329    10    4    

18
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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
Оставьте свое сообщение