Как я могу сделать PDF без возможности печати программно?

2

Как я могу сделать PDF файл без печати программным способом с помощью .net?

  • 2
    Какую библиотеку или метод вы используете в настоящее время, если таковые имеются, для создания или доступа к PDF? Решение будет отличаться, если возможно вообще, в зависимости от библиотеки.
  • 0
    Джейсон, мы конвертируем документы MS Word, используя Adobe Pro.
Теги:
security
printing
pdf

4 ответа

5

Короткий ответ. Вы не можете. Вы можете попытаться установить параметр DRM для предотвращения печати, но все зависит от клиентского программного обеспечения для рендеринга PDF файла, и если оно соблюдает DRM или нет.

Кроме того, при условии, что вы можете просматривать PDF файл, нет ничего, что помешало бы пользователю получать снимки экрана, содержащиеся в PDF файле.

  • 0
    Спасибо, Стивен, за быстрый ответ. Я понимаю, что мы не можем запретить нашим пользователям печатать и делать снимки экрана, если они хотят взломать PDF. Мы просто хотим отключить кнопку печати, потому что эти пользователи не могут ничего устанавливать на свои машины, и снимки экрана не являются нашей заботой. Как я могу установить параметр DRM, используя .net?
2

Конечно, вы можете предотвратить печать! Конечно, вы не можете предотвратить захват экрана, но вы можете определенно запретить случайному пользователю печатать PDF в Adobe Reader. Я знаю в нашем продукте ActiveReports, когда мы экспортируем PDF, вы можете указать различные параметры безопасности, которые определяют, может ли пользователь, просматривающий PDF, распечатать или нет. Разработчик может указать пароль администратора, который может использоваться, чтобы разрешить печать только некоторым пользователям, а также предотвращать печать без пароля.

Подробнее об этом можно узнать в Документации по перечислению PdfSecurity в ActiveReports. Пример кода приведен в документации здесь. Следуйте ссылкам на этой странице, чтобы увидеть дополнительную информацию.

Если вы хотите загрузить существующий PDF и изменить, обычно люди предлагают iTextSharp. Хотя я не использовал его, другие люди рекомендуют его высоко, и я думаю, что он будет работать для этого сценария read + change. Мне удалось найти пример того, как вы можете использовать iTextSharp для включения/выключения "AllowPrint" и других разрешений здесь.

0

У вас есть несколько вариантов в зависимости от подробных требований, но самым простым было бы установить шифрование паролей в документе. Как некоторые из вышеперечисленных людей, вы можете установить пароль владельца и пароль пользователя для шифрования документа. Пароль владельца в основном позволяет доступу на уровне администратора и полностью открывает документ для всех операций. Пароль пользователя открывает документ, но доступ ограничен тем, что вы указали во время шифрования, например, если вы отключите права на печать, тогда кто-то, кто поставляет пароль пользователя, не сможет распечатать PDF.

Мы предлагаем решение, которое поддерживает .NET и может легко шифровать и расшифровывать PDF файлы. Здесь ссылка на API-документы, если вы заинтересованы в том, чтобы взглянуть на нее:

 http://www.pdfonline.com/easypdf/epsdk_manual/index.htm?page=reference%2Fpdfprocessorsdk%2Fpdfprocessor%2Fm_encrypt.htm

Идея заключалась бы в вызове функции Encrypt() выше и передаче аргумента PrintingPerm для PRC_SEC_PRINT_PERM_NONE. Вы также можете установить другие права доступа, такие как изменение, копирование/вставка и т.д., Если хотите.

Надеюсь, что это поможет.

0

Похоже, вы действительно ищете объект групповой политики в Active Directory, который запрещает пользователям печатать, возможно?

Обновление
Что мешает указанным пользователям отправлять PDF-документы по электронной почте и печатать дома, кроме другого объекта групповой политики, который предотвращает вложения с заданными расширениями или над определенными размерами?

  • 1
    Это, безусловно, будет решением, однако оно будет негибким.
  • 1
    если вы хотите избежать печати, звучит так, будто вы ищете негибкость? Может быть, я ошибаюсь, и хотел бы услышать от ОП, чтобы увидеть, если это неправильная оценка.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню