7

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

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

12 ответов12

6

Adobe использует свой Adobe Content Server для защиты электронных книг и PDF-файлов вместе с Adobe Digital Editions (их бесплатными программами для чтения электронных книг и PDF) на стороне клиента. Это позволяет распространять PDF-файлы с более гибкими параметрами безопасности, чем обычный автономный PDF-файл. Например, документы могут быть ограничены по времени или позволять печатать только определенное количество страниц.

Это может быть решением кувалды для вашей проблемы, так как я не знаю ни цены Adobe на этот продукт, ни практичности для небольшого количества документов. Он используется аналогами Британской библиотеки (до недавнего времени так или иначе) для электронных межбиблиотечных займов, срок действия которых истекает через 2 недели и позволяет печатать статью только один раз.

5

Я бы сказал, что это технически не только невозможно, но и непрактично.

Что мешает пользователю фотокопировать документ сразу после его печати?

Что вы пытаетесь достичь этим, кроме как собрать несколько новых предложений?

4

Даже если вы можете сделать это, вы не можете помешать пользователю сделать снимок экрана, а затем распечатать изображение или что-то в этом роде. Если пользователь может видеть данные, вы не можете помешать ему сделать копию, поэтому я советую «даже не пытайтесь». Сделайте заметное предупреждение о том, что pdf должен быть напечатан только один раз, и оставьте это так, потому что, если пользователь хочет напечатать его два раза, он найдет способ.

3

Если вы можете печатать один раз, вы можете печатать бесконечное количество раз.

Рассмотрим сетевой принтер: необработанные данные, которые будут напечатаны, должны быть отправлены на удаленное встроенное устройство, которое ваша программа не сможет ограничить, даже если она каким-то образом предполагает владение всей машиной пользователя (что уже будет считаться крайне оскорбительным). см. скандал с руткитом Sony, чтобы узнать реакцию, которую можно ожидать).

Как вы могли бы сказать, что устройство, с которым разговаривает компьютер пользователя, - это настоящий HP LaserJet, а не то, что притворяется единым (или, что еще проще, притворяется удаленным спулером), но которое сохраняет необработанный PCL/PS/ что угодно? вместо печати? Поскольку эти данные - это все, что нужно для печати задания, достаточно просто воспроизвести его несколько раз на реальном принтере, чтобы получить несколько копий. Вы также можете использовать сниффер (как упоминалось в @dlamblin) и избавить вас от необходимости эмулировать принтер.

Можно подумать о запрете сетевых принтеров, но наличие в офисе только сетевых принтеров (не простых принтеров, подключенных к ПК общего назначения, но крупных принтеров, подключенных непосредственно к коммутатору Ethernet), не является чем-то необычным. Из-за этого несколько ваших пользователей (сколько будет сильно зависеть от целевой демографии) не смогут печатать, что не является хорошим пиаром.

И даже USB не застрахован (хотя для этого потребуются дополнительные технические знания и, возможно, специальное оборудование); существуют USB-снифферы. И даже без них вполне достаточно "драйвера гаджета" для usb-принтера на встроенном устройстве Linux (однако обратите внимание, что на момент написания этой статьи я не знал ни одного драйвера гаджета для usb-принтера для Linux).

Все это при условии, что программе каким-то образом удалось получить полный контроль над машиной пользователя. Как показывают несколько неудачных попыток защиты от копирования, это легче сказать, чем сделать. Как узнать, что используемый вами драйвер принтера - это просто необычная версия драйвера принтера для популярной марки принтеров, а не взломанная версия для сохранения потока на диск? Как узнать, что где-то в стеке печати нет драйвера, регистрирующего все транзакции USB на диск? И как вы можете отличить обычного пользователя виртуальных машин от того, кто использует их для перехвата связи с USB-устройствами?


Все, что сказал, вам не нужно идти так далеко. Большинство людей, даже если у них есть технические ноу-хау, не будут пытаться обойти даже самые слабые попытки предотвратить повторную печать, которую вы делаете. На самом деле, я бы не удивился, если бы большинство пользователей добровольно не печатали более одного раза, если сказали, что файл должен быть напечатан только один раз (но тогда было бы больше случаев, когда люди случайно печатали дважды). Итак, создайте простую программу, которая печатает один раз, а затем стирает исходные данные. Предупредите пользователя, что данные будут удалены после однократной печати. И примите к сведению, что некоторые люди будут печатать больше раз, чем вы разрешали, и что некоторые люди будут печатать меньше раз, чем вы допустили (сбои питания, неисправные принтеры, неправильно настроенные системы или страшная ПИСЬМА ЗАГРУЗКИ ПК могут привести к сбою печати). Будьте готовы к этому.

Для людей, которые печатают больше раз, чем разрешено, просто примите убытки, точно так же, как физический магазин должен признать, что часть его запаса будет случайно повреждена или потеряна каким-либо образом. Иметь какой-то способ найти самых крупных злоумышленников и разобраться с ними (правовая система, кажется, является популярным выбором).

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

2

Идея о том, что программа может контролировать то, что пользователь печатает что-то один раз, является ошибочной идеей. Подумайте о застревании бумаги - только то, что какое-то приложение или операционная система успешно отправили задание на печать на принтер, не гарантирует, что пользователь получит копию. Так что же тогда делать пользователю?

Или как насчет принтера, настроенного для печати X копий каждого листа? А как насчет сканеров или фотокопировальных устройств?

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

2

Я знаю, что многие билеты на мероприятия, доставленные в формате PDF, не очень беспокоятся об этом. Вместо этого они очень твердо утверждают, что место проведения будет сканировать штрих-коды, и что только первая копия данного билета будет пропущена через дверь. Они также имеют тенденцию печатать имя покупателя на билете, что позволяет также запрашивать удостоверение личности у двери.

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

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

Жалобы были достаточно громкими, чтобы ни у одной из последующих версий не было этих ограничений.

1

Я не могу найти функцию Adobe PDF, которая подсчитывает количество раз, когда документ напечатан. Я только нахожу отключение всей печати. Это имеет смысл, если принять во внимание следующее:

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

Засим:

На Mac я предпочел бы предварительно просмотреть распечатку, прежде чем нажимать "печать", и сохранить созданный ею предварительный просмотр PDF.

На ПК я бы попросил драйвер принтера также перенести работу в файл.

Или я выбрал бы драйвер для печати в файл, многие из которых бесплатны.

И если бы ни один из вышеперечисленных вариантов не был доступен для меня, я мог бы попросить мой драйвер принтера для многих моделей сначала спулировать PostScript на диск или, в крайних случаях, перехватить сетевой трафик на принтере вне сети. Обычно это не аутентифицировано и не зашифровано. PostScript может даже быть переписан обратно в PDF, если это будет необходимо.

Редактировать:
Даже с помощью Java-апплета печати, который Pitney-Bowes использует для печати почтовых расходов, который, кажется, отключает опцию предварительного просмотра, я сохранил полученное задание на печать для перепечатки. Но я больше не использую эту опцию, потому что кажется, что она просто не может правильно печатать на бумаге любого типа, она всегда печатает штрих-код за пределами страницы, даже когда я играю прямо с намерением однократной печати ,

1

У нас есть сценарий, связанный с печатью ваучера / купона. По сути, клиент должен убедиться, что у пользователя есть только одна копия ваучера. Проверка при выкупе (в магазине) не вариант, поэтому это необходимо сделать во время печати ваучера.

Рассматривали ли вы персонализацию отпечатков, требуя какой-то идентификационный номер (и, возможно, некоторую подпись) при использовании отпечатка в магазине, и предоставили ли вы соглашению о продаже, что будет использоваться только одна копия? Затем вам понадобится некоторая окончательная обработка (позднее), чтобы зарегистрировать, какие ваучеры использовались многократно, и (угрожать) выставить счет клиенту за это ... (Это может быть даже дополнительная вещь, рядом с попыткой ограничить количество отпечатков.)

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

Кроме того, как уже отмечал @RBerteig, у некоторых клиентов может даже не быть принтера, или могут закончиться чернила. Как они будут печатать у какого-нибудь соседа или на работе, когда вашему решению понадобится дополнительное программное обеспечение, например (ужасные, на мой взгляд) Adobe Digital Editions? Продолжая тему: каким будет электронный ваучер? Я думаю, что вы будете осуществлять некоторую онлайн-проверку при погашении в следующем выпуске, для тех, кто показывает вам штрих-код на своем смартфоне, а не бумажный ваучер.

Мы знаем, что у всей концепции есть фундаментальные недостатки, но мы в основном хотим сделать так, чтобы среднестатистический Джо печатал более 1.
[..]
Проблема в том, что конкурент разработал ряд решений с помощью элементов управления ActiveX и специальных приложений, которые необходимо установить, чтобы справиться со всем этим, мы просто пытаемся найти более элегантное решение.

Хорошо, ясно, что вы в конечном итоге внедрите какое-то решение, которое не будет очень безопасным. Я думаю, у вас будет какое-то письменное заявление для клиента о рисках. Я полагаю, что в этом письменном заявлении вы также показываете клиенту, насколько легко решение конкурента может быть использовано для печати нескольких копий.

0

Я не технарь, но, возможно, стоит потратить время на посещение веб-сайта Globe and Mail (Канада). Это газета, которая взимает с тиража от одного до ста. Возможно, вы сможете адаптировать все, что они сделали, к вашей собственной проблеме. Причина, по которой я просматриваю этот сайт, заключается в том, что я собираюсь запустить сайт и хочу защитить свой контент. Удачи

0

Мы сделали такие вещи с водяными знаками. В PDF всегда есть водяной знак, за исключением некоторого определенного "события", которое позволяет пользователю печатать (например, оплата в нашей ситуации). Затем мы перерисовываем PDF без водяного знака.

Не совсем то, что вы ищете, но, возможно, понятие водяного знака может быть полезным?

0

Попробуйте этот урок от Adobe:

Вы можете запретить пользователям печатать PDF-форму. Вы можете указать, может ли форма печататься, печататься с минимальным разрешением или печататься с высоким разрешением.

1.Выберите «Файл»> «Свойства формы».

2.Перейдите на вкладку «Безопасность PDF».

3.В области «Разрешения» выберите «Использовать пароль для ограничения печати и редактирования документа и его настроек безопасности».

4.В списке «Допустимая печать» выберите один из следующих параметров:

•Никто

• Низкое разрешение (150 точек на дюйм)

•Высокое разрешение

0

"Хм", (как сказал Deep Thought), "Хитрый"

Как насчет распределения доступа к веб-сайту с простым требованием входа в систему, который содержит ваучер. Распечатайте ваучер с веб-страницы.

Настройте сайт так, чтобы пользователь мог войти в систему только один раз.

Возможно, вы сможете настроить сайт так, чтобы ваучер НЕ отображался на веб-странице, хотя я не знаю, как это сделать. Если вы можете сделать это, вы запретите пользователю загружать и делать несколько отпечатков.

Если с входом в систему что-то пойдет не так, предоставьте законный, но не слишком простой способ получить еще один вход.

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

Если вас беспокоят фотокопии, есть способы предотвратить это - посмотрите медицинские рецепты, которые используют "безопасную бумагу", например.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .