# Настройка сервиса печати

Для работы сервиса печати необходимы следующие компоненты:

1\. Коннектор YokogawaConnector;

2\. Веб-сервис печати WebPrintService.asmx, развернутый как отдельное приложение и доступный по хост-адресу для основного приложения "Первой Формы";

3\. Сервис заданий на печать TCJobService (предоставляется сотрудниками технической поддержки "Первой Формы") для периодического запуска заданий на печать из очереди.

## Необходимые настройки

1\. Для корректной работы коннектора в web.config основного приложения должен быть прописан адрес веб-сервиса печати:

```xml
<system.serviceModel>
          <bindings>
              <basicHttpBinding>
                    <binding name="WebPrintServiceSoap" />
              </basicHttpBinding>
          </bindings>
          <client>
 <endpoint address="[ХОСТ]/WebPrintService.asmx" binding="basicHttpBinding" bindingConfiguration="WebPrintServiceSoap"               contract="TCWebPrintService.WebPrintServiceSoap" name="WebPrintServiceSoap" />
          </client>
</system.serviceModel>
```

2\. В web.config веб-сервиса печати должна быть настроена строка подключения (ConnectionString) по имени PrintServiceConnectionString для БД с тремя таблицами:

- PrintService\_Tasks

- PrintService\_TaskUnits

- PrintService\_LogRecords

(скрипт создания таблиц можно загрузить [здесь](https://help.1forma.ru/files/TablesForPrintService.zip))

```xml
<connectionStrings>
  <add name="PrintServiceConnectionString" connectionString="..." />
</connectionStrings>
```

3\. В web.config веб-сервиса печати должны быть указаны настройки:

```xml
<appSettings>
         <add key="CachePath" value="C:\Cache\TCPrintService"/>
         <add key="ConfigPrinterUrl" value="PDFCreator"/>
         <add key="NProcessedTasks" value="10"/>
         <add key="PathToLogFile" value="C:\Cache\TCPrintServiceLog.txt"/>
           </appSettings>
```

где ConfigPrinterUrl — название принтера, доступного в сети для сервиса печати.

## Схема работы

1\. Подготовка файлов на печать осуществляется в YokogawaConnector в папке bin.

2\. Коннектор по событию отправляет веб-сервису печати файлы для печати.

3\. Веб-сервис печати принимает файлы и записывает их в БД из п.2 в разделе "Необходимые настройки". Задание становится в очередь заданий на печать.

4\. Сервис заданий на печать с заданной периодичностью отправляет запрос на веб-сервис печати с командой напечатать задания из очереди.

5\. Веб-сервис печати забирает задания из очереди, "склеивает" файлы и отправляет на печать итоговый файл pdf.

6\. Если задание выполнено успешно, оно удаляется из БД.

7\. Для анализа ошибок можно использовать журналы (логи), которые хранятся в таблице PrintService\_LogRecords (см. выше).
