Skocz do zawartości

Witamy na polskim forum Contao
Zarejestruj się teraz, aby skorzystać ze wszystkich funkcji forum. Kiedy się zalogujesz, będziesz mógł tworzyć tematy, pisać posty, rozdawać punkty reputacji, korzystać z prywatnych wiadomości i zarządzać swoim profilem. Jeśli posiadasz już konto, zaloguj się - w przeciwnym wypadku zarejestruj się już teraz!
Zdjęcie

pdf


  • Proszę się zalogować aby odpowiedzieć
6 odpowiedzi na ten temat

#1
gutenbergus

gutenbergus

    Znawca

  • Zarejestrowani
  • PipPipPipPip
  • 189 postów
Witajcie,

Mam katalog produktów. Potrzebuję wygenerować kartę produktu do pobrania. Dobrze by było, żeby raz wygenerowany PDF pozostawał gdzieś w cache-u, tzn nie generował się za każdym razem. Jak to zrobić? Jak ustalić wygląd takiego PDF-a (jakiś szablon)?
  • 0

#2
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski
Generalnie to polecam zapoznać się z funkcją Controller::printArticleAsPdf(). A cache możesz zrobić podobnie jak to jest z wyszukiwarką /system/modules/frontend/ModuleSearch.php. Przy generowanu pdf zapisujesz go na dysk i tyle :)
  • 0

Codefog - Contao web development


#3
gutenbergus

gutenbergus

    Znawca

  • Zarejestrowani
  • PipPipPipPip
  • 189 postów
Kamilu, wracam do tematu. Odsłonisz rąbka tajemnicy? Zależy mi na ustawieniu wyglądu pdf-a. Powinien wyglądać tak jak strona w wersji do druku. Styl oczywiście przygotowany.
  • 0

#4
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski
Wygląd PDFa możesz spróbować ustawić poprzez tag <style> bezpośrednio w artykule lub użyć do tego HOOKa printArticleAsPdf:

// pdf_style/config/config.php
$GLOBALS['TL_HOOKS']['printArticleAsPdf'][] = array('PdfStyle', 'addStyles');
 
// pdf_style/PdfStyle.php
class PdfStyle extends Frontend
{
    public function addStyles(&$strArticle)
    {
        $strArticle .= '<style type="text/css">
        h1 {
            color: red;
        }
        </style>';
    }
}
Choć nie wiem czy TCPDF w ogóle bierze pod uwagę tag <style> :unsure:
  • 0

Codefog - Contao web development


#5
gutenbergus

gutenbergus

    Znawca

  • Zarejestrowani
  • PipPipPipPip
  • 189 postów
Dzięki Kamilu. Jeszcze jedno pytanie:
Moduł Module_read.php zawiera klasę z 3 funkcjami: generate(), compile() i moja genPDF($string)

funkcja compile() wysyła dane do templejtu - dosyć rozbudowany html z tabelami. Jak to teraz zassać z powrotem do funkcji genPDF() jako string z już wprowadzonymi danymi???
  • 0

#6
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski
Templejt modułu to zwykła klasa FrontendTemplate(), więc możesz ten templejt prosto skompilować:

$strBuffer = $this->Template->parse(); // zwroci skompilowany kod HTML templatki

  • 0

Codefog - Contao web development


#7
gutenbergus

gutenbergus

    Znawca

  • Zarejestrowani
  • PipPipPipPip
  • 189 postów
Dzięki, właśnie o to chodziło.
  • 0




1 użytkowników czyta ten temat

0 użytkowników, 1 gości, 0 anonimowych użytkowników