• 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

0 głosów
352 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 (607,330 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 (607,330 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 (607,330 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 311 wizyt
pytanie zadane 14 listopada 2018 w PHP przez DanexZ Obywatel (1,270 p.)
0 głosów
1 odpowiedź 274 wizyt
pytanie zadane 23 kwietnia 2020 w PHP przez damianos123 Nowicjusz (180 p.)
0 głosów
0 odpowiedzi 850 wizyt
pytanie zadane 1 sierpnia 2018 w PHP przez lukii1717 Nowicjusz (140 p.)

93,605 zapytań

142,529 odpowiedzi

322,999 komentarzy

63,094 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

Kursy INF.02 i INF.03
...