Autor Zpráva
Majkelju
Profil
Zdravím!

Jak zařídím, aby uživatel mohl v prohlížeči zobrazit vytvořený pdf soubor, uložený na serveru? Jeho případné uložení už je pak záležitostí pravého kliku v prohlížeči, že? Používal jsem knihovnu mPDF, která soubor v pohodě zobrazila, přešel jsem ale na jinou metodu vytvoření PDF (wkhtmltopdf) a budu to muset zobrazit čistě pomocí PHP asi....
Joker
Profil
Majkelju:
Zobrazení PDF v prohlížeči je záležitost prohlížeče (musí mít příslušný plugin).

Jediný způsob, jak ho zobrazit ve všech prohlížečích, by bylo nějak ho konvertovat na HTML.
Majkelju
Profil
Joker: Tak HTML už mám vlastně vytvořené (to, ze kterého to převádím do PDF) a zatím ho nechávám zobrazovat místo PDF.... jenže HTML uživateli neukáže záhlaví, zápatí, číslování stránek....
Ugo
Profil
<?php
header('Content-type:application/pdf');
echo file_get_contents(PDF_SOUBOR);
die();
?>
:)
Majkelju
Profil
Ugo: Krása!! Navíc pěkně jednoduchý i pro mě :) Díky!


Ugo, myslíš, že bys mi mohl ještě pomoct s kódováním? Jestli to tedy můžu řešit v tomhle tématu..
Ugo
Profil
snad to tu nikomu vadit nebude a pomůže
Alphard
Profil
Tady se vybízí použít readfile().

Majkelju:
mohl ještě pomoct s kódováním? Jestli to tedy můžu řešit v tomhle tématu
Souvisí to s kódováním toho pdf? Jestli je to úplně něco jiného, radši založte nové vlákno.
Majkelju
Profil
Ano, souvisí to s tím... nejprve uložím html obsah do proměnné, tu pak proženu přes iconv(), uložím do .php souboru a z něj přes wkhtmltopdf vytvořím .pdf soubor. iconv() zřejmě proběhne správně, bez něj se mi v uloženém .php české znaky zobrazovaly špatně, když to převedu na windows-1250, tak to funguje dobře. Jenže když to pak převedu na .pdf, tak je kódování zase špatně...zkoušel jsem do příkazu přidat příznak --encoding windows-1250, ale jakoby ho to ignorovalo... (příznak --header-html mi navíc nevytvoří žádné záhlaví)
EDIT: Zkusil jsem wkhtmltopdf spustit přímo z přík. řádku a všechny příznaky fungují... Takže problém bude v tom, že to spouštím přes PHP... dalo by se to nějak obejít? Ještě upozorňuju, že samotný příkaz funguje, jen příznaky ne.

$html = ob_get_clean();
    $html = iconv("UTF-8","Windows-1250", $html);
    file_put_contents('../export.php', $html);
    
    $commandString = '--header-html header.html '.WKHTML_LIB.' http://www.estiroad.com/export.php sestava.pdf';
    exec($commandString);

    header('Content-type:application/pdf');
    echo file_get_contents('sestava.pdf');
    die();

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: