Отключение параметров меню PDF при отображении на веб-странице - PullRequest
0 голосов
/ 08 сентября 2011

Я показываю PDF на веб-странице. Веб-страница представляет собой всплывающее окно. Код:

        string filePath = @"C:\TempPDF\Sample.PDF";

        bytes = rv.ServerReport.Render("PDF", null, out mimeType, out encoding, 
          out extension, out streamIds, out warnings);

        FileStream fileStream = new FileStream(filePath, FileMode.Create);

        fileStream.Write(bytes, 0, bytes.Length);

        fileStream.Close();

        File.Delete(filePath);

        Response.ClearContent();

        // write file to browser 
        Response.BinaryWrite(bytes);
       Response.Flush();

Это все отлично работает. В связи с требованиями бизнеса и мошенничеством пользователь должен:

  • печатать только один раз (и тогда окно должно закрываться, если это возможно)
  • не позволяет пользователю сохранять PDF

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

1 Ответ

1 голос
/ 08 сентября 2011

Плохие новости

Когда вы «просматриваете» PDF в своем браузере, вы уже «сохранили» его на своем компьютере.Если вы думаете об этом по сравнению со всем остальным в Интернете (веб-страницы, изображения и т. Д.), Это действительно имеет большой смысл.Таким образом, отключить «сохранение» означает отключить «загрузку», в первую очередь это не то, что вам нужно.

Та же идея верна для печати.Можете ли вы сделать изображение для печати только один раз?(На самом деле да, см. Ниже.) Другая проблема заключается в том, что то, напечатано ли что-то или нет, является вопросом уровня документа и будет зависеть от исполнителей средства просмотра PDF для реализации в первую очередь.Поскольку это не является частью спецификации PDF, на самом деле нет никакого интереса в этом.А также, что означает «напечатать один раз» в первую очередь?Я могу нажать кнопку печати только один раз?Можно ли распечатать один раз и выбрать 500 копий?Поскольку печать выгружается в драйвер принтера / ОС, эту «информацию о безопасности» также необходимо будет передавать.После печати я могу сканировать и перепечатывать.На самом деле, я мог бы печатать в PDF / PostScript и в любом случае получить необработанную незащищенную версию.

В Adobe Acrobat есть некоторые параметры безопасности, которые могут показаться хорошей идеей, но они также не помогут вам.далеко.Если вы откроете PDF-файл в Acrobat и перейдете в раздел «Дополнительно», «Безопасность», «Зашифровать с паролем», вы можете по крайней мере отключить изменения PDF-файла с помощью пароля.Интересно, что если вы отключите изменения, это фактически отключит кнопку Сохранить в Adobe Reader / Acrobat.Вместо этого это заставляет вас сохранять как, но я видел, что многие люди «думают», что «Сохранить» отключили.К сожалению, для печати мало что можно сделать, чтобы заблокировать ее.

Благая весть

Извините, что просочился в ваши требования.Очень похоже на то, что делают купонные компании, когда они хотят, чтобы вы могли печатать только один раз.Я бы попытался имитировать то, что они делают.Или, может быть, даже лучше, Google Calendar делал что-то подобное (хотя, похоже, больше не делает).Google раньше показывал вам «предварительный просмотр» документа (просто JPG), и когда вы нажимаете «print», он загружает асинхронный ресурс в скрытый контейнер, используя IFRAME, AJAX или OBJECT, и затем печатает его. Вот пост, в котором больше говорится об этом .По этому пути вы можете использовать свою обычную логику программирования, чтобы отключить собственную кнопку печати HTML после печати.Конечно, если кто-то нажимает кнопку «Печать», но затем отменяет диалоговое окно печати, ему не везет.

Другая вещь, которую вы можете сделать, это передать некоторые параметры в PDF, чтобы отключить встроенные панели инструментов при отображенииPDF.В частности, вы можете отправить somefile.pdf?toolbar=0. См. Этот документ для получения дополнительной информации .Обратите внимание, что эти настройки применяются только к Adobe Acrobat / Reader.Chrome, Safari и другие браузеры имеют свои собственные средства рендеринга PDF.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...