Запретить (обычному пользователю) скачивание PDF - PullRequest
0 голосов
/ 13 июня 2019

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

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

Меня попросили «отключить» параметр загрузки при отображении некоторых изображений и файлов PDF в нашем веб-приложении.

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

То, что я пробовал до сих пор:

  1. С помощью тега переместите элемент вверх, чтобы скрыть панель инструментов.Все работало нормально для Firefox, затем я обнаружил, что другие браузеры просто отображают кнопку загрузки при наведении
  2. Накройте элемент прозрачным div.Работал на FF и Chrome.Не работает с IE и Edge (элемент embed всегда помещается поверх остальных)
  3. То же, что и два, но с iFrame.IE вообще не показывает iFrame, когда за
  4. я использовал PDF-рендеринг SwingLabs для преобразования PDF в изображение.Все цвета конечного изображения неверны.

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

ПРИМЕЧАНИЕ. Пользователям, которые могут просматривать эти PDF-файлы, необходимо пройти проверку подлинности и иметь специальные разрешения, поэтому не беспокойтесь по поводу возни.

Ответы [ 3 ]

1 голос
/ 13 июня 2019

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

Существуют библиотеки, которые можно использовать для преобразования из PDF в другой формат. Однажды мне дали сравнительно похожее задание. Моя задача была сделать предварительный просмотр документа до того, как пользователь DL'd его и клиентское приложение открыло соответствующее программное обеспечение для обработки текста.

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

Я позволил Aspose выполнить преобразование документа в файл HTML и загрузил его в iFrame в моем интерфейсе.

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

1 голос
/ 13 июня 2019

Вы можете использовать Aspose.PDF для преобразования PDF в изображение или HTML, если вы рассматриваете это решение.

Преобразование PDF в HTML:
https://docs.aspose.com/display/pdfjava/Convert+PDF+to+HTML+format
Конвертировать PDF в SVG: https://docs.aspose.com/display/pdfjava/Convert+PDF+to+other+Formats#ConvertPDFtootherFormats-ConvertPDFtoSVGformat

Надеюсь, это поможет. В противном случае, не стесняйтесь спрашивать меня.

Примечание : я работаю в качестве разработчика Evangelist в Aspose.

0 голосов
/ 13 июня 2019

Меня попросили «отключить» параметр загрузки при отображении некоторых изображений и файлов PDF в нашем веб-приложении.

Есть такая вещь, как "Этика" и "ответственность разработчика". Это один из случаев, когда вы сталкиваетесь не с технической проблемой, а с социальной, и есть только одно решение: иди и скажите, кто бы из вас ни спросил, что он дебил, и сеть просто так не работает. Особенно с PDF-файлами!

Вы когда-нибудь открывали PDF в браузере? Вы заметили, что все встроенные средства просмотра PDF, встроенные в браузер, представляют кнопку «сохранить этот PDF» на панели инструментов? Понимаете ли вы, что средство просмотра PDF работает вне контекста вашего сайта, и вы не можете манипулировать им (по соображениям безопасности)?

Серьезно: Решение этой проблемы состоит в том, чтобы сказать человеку над вами, что то, что они просят вас сделать, неразумно и просто ломает вещи. Это ваша обязанность сделать!

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