Недавно я получил ТЗ: сформировать счет на оплату с факсимиле в формате pdf, запретить копирование печати и подписей из файла, записать автора документа.
Поскольку не требовалась пакетная обработка файлов, решил написать консольное приложение на C#.
Чтобы распарсить документ, использовал библиотеку pdfSharp.dll версии 1.5.
Меня порадовало время выполнения приложения в пределах 1 сек., поэтому захотел поделиться своим решением.
После заполнения счета на оплату, сохранения в формате pdf, вызываю приложение с аргументами командной строки.
Для обработки аргументов командной строки использую класс Options.
Можно передать значения метаданных: автора, заголовок, тему, ключевые слова, установить пароль пользователя файла.
Если не заданы пароли, то программа присвоит рандомизированное значение паролю владельца.
Операции над документом ограничиваются с помощью бинарной маски.
По умолчанию используется 128-битный ключ шифрования.
Можно убедиться, что файл зашифрован в блокноте. В trailer будет добавлен ключ /Encrypt N 0 R с ссылкой на объект шифрования, в котором ключ /P будет содержать маску операций.
Проект собран под Net Framework 4.0 ,работает в Windows.
В планах : поддержка пакетного режима ,сборка под Net Core.
P.S. А как Вы защищаете свои электронные документы от любопытных глаз?