• 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
208 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 (604,880 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 (604,880 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 (604,880 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 232 wizyt
pytanie zadane 14 listopada 2018 w PHP przez DanexZ Obywatel (1,270 p.)
0 głosów
1 odpowiedź 203 wizyt
pytanie zadane 23 kwietnia 2020 w PHP przez damianos123 Nowicjusz (180 p.)
0 głosów
0 odpowiedzi 700 wizyt
pytanie zadane 1 sierpnia 2018 w PHP przez lukii1717 Nowicjusz (140 p.)

93,004 zapytań

141,969 odpowiedzi

321,248 komentarzy

62,340 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

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...