ugrás a tartalomhoz

PHP-ből pdf fájl megnyitása - böngészőbe épülő adobe reader gombjainak letiltása

emilllio · 2007. Aug. 31. (P), 19.36
Üdv
Hátha találkozott már valaki ilyennel:
A pdf fájl megnyitása oké:

...
header('Accept-Ranges: bytes');
header('Content-Transfer-Encoding: Binary');
header('Content-Type: application/pdf');
header('Content-Disposition: inline');
readfile('valami.pdf');
...

A pdf dokumentumra be vannak állítva szigorítások (nem nyomtatható, nem menthető, stb) .
Viszont mikor a fent említett módon megnyitom, akkor a böngészőbe beépülő adobe reader-ben
a mentés másként és a pdf mail-hez csatolása gombok élnek.
Az lenne a kérdésem, hogy hogy tudnám letiltani ezeket a gombokat a böngészőbe beépülő reader-ben?

Előre is köszi
 
1

nem menthető?

zila · 2007. Aug. 31. (P), 20.32
Tudtommal csak a nyomtatást, szerkesztést és másolást (vágólapra) lehet szabályozni, a mentést nem (hogyan is, hiszen a file maga már a kliens gépén van, filerendszerben is másolható a pdf) Ezért aztán ezeket a gombokat nem fogod tudni letiltani. Szerintem.

http://en.wikipedia.org/wiki/Portable_Document_Format
2

nem akarom menteni

emilllio · 2007. Aug. 31. (P), 20.58
Az a kód elejéről sajna lemaradt, hogy a cache ki van kapcsolva, így a kliensen nem lesz meg a pdf fájl.
Azt a pdf fájlokban meg lehet adni, hogy akár menteni, nyomtatni se lehessen, mikor megjeleníti őket.
Ez megy is, de a mentés másként és a mail-hez csatolt állományként való gomb aktív marad.
Valamilyen módon fel lehet paraméterezni a readert, csak az nem tudom, hogyan.
Mert a readernek vannak pl parancssori argumentumai, amivel a toolbar-t, statusbar-t, stb le lehet
tiltani megjelenítéskor. De neten át ez a funkció nem megy (vagy csak én nem jöttem rá -:) ).
3

böngészők

Castor87 · 2007. Aug. 31. (P), 23.38
Valamennyi funkció letiltása után valóban ott van még a mentés másként. Ha sikerülne esetleg letiltanod, akkor sem tudnád az összes böngészőre alkalmazni.. Szvsz a megmutatom, de oda nem adom a tudomány mai állása szerint lehetetlen. ;)

szerk.: ha mégis sikerül, akkor ott van még a print screen.
5

Nem cache-eli?

presidento · 2008. Már. 25. (K), 23.20
Én speciel nem nagyon vagyok kibékülve azzal, hogy a böngészőn belül nézegessem a pdf-eket...
https://addons.mozilla.org/en-US/firefox/addon/636
4

fpdf

razielanarki · 2007. Szep. 1. (Szo), 02.23
én az fpdf osztályt használtam egy on-line önmagát nyomtató pdf (számla) készítéséhez, így itt alapból le kellett tiltani mindenféle ui dolgot.
(meg persze volt egy "thin client" ami egy adobe reader+firefox kombó volt)

persze ez egy saját script által generált pdf file, nem pedig readfile()-s de talán hasznos lehet.
  1. class autoprintpdf extends fpdf  
  2. {  
  3.     // 1-2 beállítás  
  4.     function autoprintpdf ()  // php4-es constructor  
  5.     {  
  6.         $this->fpdf('P','mm','A4');  // fpdf php4-es constructora  
  7.   
  8.         $this->setdisplaymode ('real''continuous');  
  9.         $this->setcompression (true);  
  10.     }  
  11.   
  12.     // ez az önnyomtató beágyazott js (adobe reader 5.0+/4.0+?)  
  13.     var $n_js;  
  14.   
  15.     function _putresources()  
  16.     {  
  17.         parent::_putresources ();  
  18.   
  19.         $script = "print ({bUI: false, bSilent: true});"// ez maga a js :)  
  20.   
  21.         $this->_newobj ();  
  22.   
  23.         $this->n_js = $this->n;  
  24.   
  25.         $this->_out ('<<');  
  26.         $this->_out ('/Names [(EmbeddedJS) ' . ($this->n + 1) . ' 0 R ]');  
  27.         $this->_out ('>>');  
  28.         $this->_out ('endobj');  
  29.   
  30.         $this->_newobj ();  
  31.   
  32.         $this->_out ('<<');  
  33.         $this->_out ('/S /JavaScript');  
  34.         $this->_out ('/JS ' . $this->_textstring ($script));  
  35.         $this->_out ('>>');  
  36.         $this->_out ('endobj');  
  37.   
  38.     }  
  39.   
  40.     // itt tüntetem el az összes ui elemet... jobbklikkre is csak nyomtatni lehet meg zoomolni stb  
  41.     // persze a számla egy rejtett iframeből nyomódott ki ami utána át lett írányítva,  
  42.     // szal elvileg 1 példányt nyomott csak eredetiből, minden későbbi meghívásra "másolat" lett  
  43.     function _putcatalog ()  
  44.     {  
  45.         parent::_putcatalog ();  
  46.   
  47.         $this->_out ('/ViewerPreferences<<');  
  48.         $this->_out ('/HideMenubar true');  
  49.         $this->_out ('/HideToolbar true');  
  50.         $this->_out ('/HideWindowUI true');  
  51.         $this->_out ('>>');  
  52.         //-- eddig az ui dolgok  
  53.         $this->_out('/Names <</JavaScript ' . ($this->n_js) . ' 0 R>>'); // ref a js objektumra  
  54.     }  
  55. }