• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

JS nie działa w bibliotece mpdf

VPS Starter Arubacloud
0 głosów
171 wizyt
pytanie zadane 26 czerwca 2019 w PHP przez michal_php Stary wyjadacz (13,700 p.)

Mam problem z biblioteką mpdf do tworzenia pdf nie chce mi ona wykonać skryptu js i jej biblioteki. Może coś robię źle jak by koś mógł rzucić okiem był bym dozgonnie wdzięczny.

  $mpdf = new \Mpdf\Mpdf();
            $html = $this->renderView('GeneratorPDF/pdf/pdf'.$_POST['select'].'.html.twig',
                [
                    'text'=>$description,
                    'array'=>$pole,
                ]);

            $mpdf->WriteHTML($html);
            $mpdf->SetJS('print(<script src="fitty/dist/fitty.min.js"></script>);');
            $mpdf->SetJS('print(
                 <script>
                    fitty(\'#my-element\', {
                        minSize: 9,
                        maxSize: 30
                    });
                </script>                
            )');
            $mpdf->Output();

 

1 odpowiedź

0 głosów
odpowiedź 26 czerwca 2019 przez Comandeer Guru (599,730 p.)

setJS nie przypadkiem przyjmuje wyłącznie sam kod JS? Innymi słowy: nie da się tak wczytać zewnętrznego skryptu ani nie powinno się stosować znacznika script. Dodatkowo print jest całkowicie zbędne (to chyba pozostałość po kodzie PHP?).

komentarz 26 czerwca 2019 przez michal_php Stary wyjadacz (13,700 p.)

To jak inaczej mogę zastosować skrypt js do mojej biblioteki mpdf ? Próbowałem też umieścić bezpośrednio w html renderowanym do pdf , ale nie działa.Oraz prosty skrypt w czystym js bez tagów script też nie działa:

 $mpdf->WriteHTML($html);
            $mpdf->SetJS('print(
                
                window.onload=function test() {
                    var test = "działa hurra mamy to !!!";
                  document.getElementById("test").innerHTML = test;
                }
               
            );');
            $mpdf->Output();
  <span>city: {{ text.city }}</span>
        <span>street: {{ text.street }}</span>
        <span>phone: {{ text.fon }}</span>
        <label id="test"></label>

 

komentarz 26 czerwca 2019 przez Comandeer Guru (599,730 p.)

print nie należy do JS-a.

$mpdf->SetJS(' var test = "działa hurra mamy to !!!";
document.getElementById("test").innerHTML = test;');

↑ Coś takiego bym spróbował.

komentarz 26 czerwca 2019 przez michal_php Stary wyjadacz (13,700 p.)

nie wiem co robię nie tak , ale jak kamień nic nie zmienia się:

$mpdf = new \Mpdf\Mpdf();
            $html = $this->renderView('GeneratorPDF/pdf/pdf'.$_POST['select'].'.html.twig',
                [
                    'text'=>$description,
                    'array'=>$pole,
                ]);

            $mpdf->WriteHTML($html);
            $mpdf->SetJS(' var test = "działa hurra mamy to !!!";
                                document.getElementById("test").innerHTML = test;');
            $mpdf->Output();
 <span>phone: {{ text.fon }}</span>
        <div id="test"></div>

Czy mam gdzieś tu błąd bo już nie wiem co źle robię ?

komentarz 26 czerwca 2019 przez Comandeer Guru (599,730 p.)

Wygląda na to, że to nie jest przeglądarkowy JS, a JS służący do kontrolowania samego dokumentu PDF. Ma to sens, bo przecież  HTML, na podstawie którego tworzysz PDF, nigdy nie jest faktycznie renderowany.

To, co chcesz zrobić, działałoby za to o wiele lepiej z Puppeteerem → https://github.com/GoogleChrome/puppeteer/blob/master/examples/pdf.js

Podobne pytania

0 głosów
0 odpowiedzi 191 wizyt
pytanie zadane 14 listopada 2018 w PHP przez DanexZ Obywatel (1,270 p.)
0 głosów
1 odpowiedź 177 wizyt
pytanie zadane 23 kwietnia 2020 w PHP przez damianos123 Nowicjusz (180 p.)
0 głosów
0 odpowiedzi 664 wizyt
pytanie zadane 1 sierpnia 2018 w PHP przez lukii1717 Nowicjusz (140 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...