ScanPacker

Консольная утилита буквально для одного кейса. Обновляться будет по мере обнаружения возможных багов. Нет обработчика ошибок, поэтому готовьтесь к System.Exception.

Задача у этой утилитки такова: из папки с кучей pdf сгенерировать zip архив размером не более 20 мегабайт, а если случилось невероятное и количество файлов в папке никак не укладывается в 20 мегабайт — создать многотомный архив. Задумывалась эта программа для формирования аттачей к информационной системе.

Настраивается утилита через файл конфигурации, в который требуется прописать папку с целевыми pdf-файлами и указать максимальный размер архива.

К примеру, имеется сетевое МФУ, которое сохраняет сканы в условную сетевую папку SCAN на файловом сервере. В файле конфигурации указывается путь до сетевого каталога \\fileserver\scan\.

Далее указывается максимальный размер архива или тома. По умолчанию выставлено 20 мегабайт.

В итоговом варианте файл конфигурации должен выглядеть так:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
 <startup> 
   <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
 </startup>
 <appSettings>
   <add key="DefaultPath" value="\\fileserver\scan\"/>
   <add key="Size" value="20"/>
 </appSettings>
</configuration>

Конфигурация настроена. Теперь можно запускать программу.

Утилита проведет оптимизацию pdf файлов и сложит их во временную папку на рабочем столе. После этого сгенерируется zip архив. На самом последнем этапе будет удалена временная папка, а целевые файлы перемещены в папку с текущей датой в директории \\fileserver\scan\.

Архив zip сохранится на рабочем столе текущего пользователя.

Программа написана на c#. Для работы необходим .Net Framework 4.5.2.

Скачать .Net Framework с этого сайта: 4.5.2 | 4.7.2 | 4.8.1.