2012-04-12 9 views

Odpowiedz

3

2017 Uwaga: ta funkcja przeniosła lokalizacje, a implementacja uległa zmianie od czasu udzielenia odpowiedzi.


Google Viewer oferuje solution.

Użyj elementu iframe, który generuje.

+1

Naprawdę nie można zapisać dokumentu za pomocą elementu iframe, ale w prawym górnym rogu ramki znajduje się przycisk trybu pełnoekranowego, a w trybie pełnoekranowym możliwe jest wydrukuj do PDF. – 71GA

+0

Powyższa metoda NIE powoduje wyłączenia funkcji pobierania. – nottinhill

+0

Możesz zmienić kod tego wygenerowanego elementu iframe za pomocą PHP (zmień adresy URL plików js ze ścieżek względnych na bezwzględne) i wyłącz przycisk drukowania. – aghoshx

3

Krótka odpowiedź brzmi: nie można tego zrobić. Jedynym sposobem wyświetlenia dokumentu PDF bez jakiejkolwiek konwersji jest użycie wtyczki Adobe PDF, która niezmiennie pozwala na zapisanie dokumentu. Co więcej, używanie różnych narzędzi do pobierania adresu URL pliku PDF i pobierania go jest banalne.

Jeśli chcesz uniknąć wysyłania rzeczywistego dokumentu PDF, możesz utworzyć skrypt po stronie serwera, który konwertuje dokument PDF na serię obrazów PNG lub JPG za kulisami. Możesz to zrobić na przykład pod ghostscript.

Jednak rzeczywista treść dokumentu nadal dociera do użytkownika, tylko w innym formacie. Jeśli nie jest to dla Ciebie satysfakcjonujące, możesz użyć varioustechniques, aby zapobiec zapisywaniu obrazów przez użytkowników o większości, ale są one łatwo omijane przez wystarczająco doświadczonego technicznie użytkownika.

+0

Czy mogę przynajmniej usunąć pasek kontrolny wtyczki PDF ??? Co najmniej zwykli użytkownicy nie wiedzą, jak go pobrać. Och i ja prawdopodobnie musiałbym również zapobiec prawemu kliknięciu. – 71GA

+0

Możesz użyć dowolnego dostępnego rasteryzatora PDF, –

3

W rzeczywistości możliwe jest dostosowanie opcji Dysku Google "Zapobieganie pobieraniu przez przeglądających" Następnie ustaw publicznie plik PDF, aby wszyscy mogli przeglądać plik PDF w przeglądarce, ale żaden nie może go pobrać. Mam nadzieję, że to pomoże niektórym.

+1

Konwertuje PDF na PNG, więc nadal można go zapisać, więc to nie pomoże ... – Legionar

1

Możesz użyć SlideShare, możesz ustawić odczytane hasło, uniemożliwić użytkownikom pobieranie w ustawieniach, a nawet utworzyć tajny link, dzięki czemu tylko użytkownicy z nim mogą go otworzyć. Jestem pewien, że są sposoby na obejście tego, ale przynajmniej nie jest to natychmiastowe.

0

Tak. Tak jest:

<div id="pdf"> 
    <object width="100%" height="650" type="application/pdf" data="[ImageURLHere]#zoom=85&scrollbar=0&toolbar=0&navpanes=0" id="pdf_content" style="pointer-events: none;"> 
     <p>Insert your error message here, if the PDF cannot be displayed.</p> 
    </object> 
</div> 

pointer-events: none stylizacji będzie również uniemożliwić użytkownikom prawym przyciskiem myszy plik PDF i pobieranie.

+0

Co zrobić, jeśli użytkownik korzysta z "źródła strony widoku"? Czy nadal może uzyskać prawidłowy adres URL? – 71GA

+1

Próbowałem go na mojej aplikacji Angular 4 i po prostu pokazuje podstawową stronę index.html. Próbowałem zagłębiać się w zakładki konsoli i nie mogłem nigdzie znaleźć zasobu. – FiringBlanks

1

Możesz pobrać plik PDF.js i zmodyfikować 2 pliki: viewer.html i viewer.js, usunąć/zmodyfikować odpowiednie przyciski/czynności w celu wyłączenia pobierania/drukowania, a także można dodatkowo wyłączyć menu podręczne z prawym przyciskiem myszy .

Powiązane problemy