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.
class autoprintpdf extends fpdf
{
    // 1-2 beállítás
    function autoprintpdf ()  // php4-es constructor
    {
        $this->fpdf('P','mm','A4');  // fpdf php4-es constructora

        $this->setdisplaymode ('real', 'continuous');
        $this->setcompression (true);
    }

    // ez az önnyomtató beágyazott js (adobe reader 5.0+/4.0+?)
    var $n_js;

    function _putresources()
    {
        parent::_putresources ();

        $script = "print ({bUI: false, bSilent: true});"; // ez maga a js :)

        $this->_newobj ();

        $this->n_js = $this->n;

        $this->_out ('<<');
        $this->_out ('/Names [(EmbeddedJS) ' . ($this->n + 1) . ' 0 R ]');
        $this->_out ('>>');
        $this->_out ('endobj');

        $this->_newobj ();

        $this->_out ('<<');
        $this->_out ('/S /JavaScript');
        $this->_out ('/JS ' . $this->_textstring ($script));
        $this->_out ('>>');
        $this->_out ('endobj');

    }

    // itt tüntetem el az összes ui elemet... jobbklikkre is csak nyomtatni lehet meg zoomolni stb
    // persze a számla egy rejtett iframeből nyomódott ki ami utána át lett írányítva,
    // szal elvileg 1 példányt nyomott csak eredetiből, minden későbbi meghívásra "másolat" lett
    function _putcatalog ()
    {
        parent::_putcatalog ();

        $this->_out ('/ViewerPreferences<<');
        $this->_out ('/HideMenubar true');
        $this->_out ('/HideToolbar true');
        $this->_out ('/HideWindowUI true');
        $this->_out ('>>');
        //-- eddig az ui dolgok
        $this->_out('/Names <</JavaScript ' . ($this->n_js) . ' 0 R>>'); // ref a js objektumra
    }
}