splitbrain / dokuwiki-plugin-dw2pdf

A fork of Luigi Micco's PDF export plugin for DokuWiki
http://www.dokuwiki.org/plugin:dw2pdf
55 stars 68 forks source link

Error: Call to undefined function Mpdf\Color\ctype_xdigit() #502

Closed mwb455 closed 7 months ago

mwb455 commented 7 months ago

Hi,

since my last OS / PHP update, trying to export a page to pdf results in following error:

Error: Call to undefined function Mpdf\Color\ctype_xdigit()

An unforeseen error has occured. This is most likely a bug somewhere. It might be a problem in the dw2pdf plugin.

More info has been written to the DokuWiki error log.

And this is from the error log:

2024-01-28 11:32:59     /usr/local/www/dokuwiki/lib/plugins/dw2pdf/vendor/mpdf/mpdf/src/Color/ColorConverter.php(361)   Error: Call to undefined function Mpdf\Color\ctype_xdigit()
  #0 /usr/local/www/dokuwiki/lib/plugins/dw2pdf/vendor/mpdf/mpdf/src/Color/ColorConverter.php(221): Mpdf\Color\ColorConverter->safeHexDec()
  #1 /usr/local/www/dokuwiki/lib/plugins/dw2pdf/vendor/mpdf/mpdf/src/Color/ColorConverter.php(194): Mpdf\Color\ColorConverter->processHashColor()
  #2 /usr/local/www/dokuwiki/lib/plugins/dw2pdf/vendor/mpdf/mpdf/src/Color/ColorConverter.php(52): Mpdf\Color\ColorConverter->convertPlain()
  #3 /usr/local/www/dokuwiki/lib/plugins/dw2pdf/vendor/mpdf/mpdf/src/Mpdf.php(14857): Mpdf\Color\ColorConverter->convert()
  #4 /usr/local/www/dokuwiki/lib/plugins/dw2pdf/vendor/mpdf/mpdf/src/Tag/Table.php(253): Mpdf\Mpdf->border_details()
  #5 /usr/local/www/dokuwiki/lib/plugins/dw2pdf/vendor/mpdf/mpdf/src/Tag.php(240): Mpdf\Tag\Table->open()
  #6 /usr/local/www/dokuwiki/lib/plugins/dw2pdf/vendor/mpdf/mpdf/src/Mpdf.php(13812): Mpdf\Tag->OpenTag()
  #7 /usr/local/www/dokuwiki/lib/plugins/dw2pdf/vendor/mpdf/mpdf/src/Mpdf.php(12415): Mpdf\Mpdf->WriteHTML()
  #8 /usr/local/www/dokuwiki/lib/plugins/dw2pdf/vendor/mpdf/mpdf/src/Mpdf.php(12267): Mpdf\Mpdf->_getHtmlHeight()
  #9 /usr/local/www/dokuwiki/lib/plugins/dw2pdf/vendor/mpdf/mpdf/src/Mpdf.php(10375): Mpdf\Mpdf->SetHTMLHeader()
  #10 /usr/local/www/dokuwiki/lib/plugins/dw2pdf/vendor/mpdf/mpdf/src/Mpdf.php(3187): Mpdf\Mpdf->_beginpage()
  #11 /usr/local/www/dokuwiki/lib/plugins/dw2pdf/vendor/mpdf/mpdf/src/Mpdf.php(12394): Mpdf\Mpdf->AddPage()
  #12 /usr/local/www/dokuwiki/lib/plugins/dw2pdf/vendor/mpdf/mpdf/src/Mpdf.php(13338): Mpdf\Mpdf->_getHtmlHeight()
  #13 /usr/local/www/dokuwiki/lib/plugins/dw2pdf/action.php(503): Mpdf\Mpdf->WriteHTML()
  #14 /usr/local/www/dokuwiki/lib/plugins/dw2pdf/action.php(118): action_plugin_dw2pdf->generatePDF()
  #15 /usr/local/www/dokuwiki/inc/Extension/EventHandler.php(80): action_plugin_dw2pdf->convert()
  #16 /usr/local/www/dokuwiki/inc/Extension/Event.php(74): dokuwiki\Extension\EventHandler->process_event()
  #17 /usr/local/www/dokuwiki/inc/ActionRouter.php(80): dokuwiki\Extension\Event->advise_before()
  #18 /usr/local/www/dokuwiki/inc/ActionRouter.php(48): dokuwiki\ActionRouter->setupAction()
  #19 /usr/local/www/dokuwiki/inc/ActionRouter.php(60): dokuwiki\ActionRouter->__construct()
  #20 /usr/local/www/dokuwiki/inc/actions.php(16): dokuwiki\ActionRouter::getInstance()
  #21 /usr/local/www/dokuwiki/doku.php(126): act_dispatch()
  #22 {main}

Version numbers of all the possible subjects:

FreeBSD 13.2p8
PHP 8.3
nginx 1.24

Installed PHP packages:

php83-8.3.1                        =
php83-curl-8.3.1                   =
php83-dom-8.3.1                    =
php83-filter-8.3.1                 =
php83-gd-8.3.1                     =
php83-iconv-8.3.1                  =
php83-ldap-8.3.1                   =
php83-mbstring-8.3.1               =
php83-pdo-8.3.1                    =
php83-pdo_sqlite-8.3.1             =
php83-pear-1.10.13                 =
php83-pear-File_PDF-0.3.3          =
php83-pecl-xmlrpc-1.0.0.r3_2,1     =
php83-session-8.3.1                =
php83-simplexml-8.3.1              =
php83-xml-8.3.1                    =
php83-zip-8.3.1                    =
php83-zlib-8.3.1                   =

Am I missing some PHP package here (which one?) or is there something else going on?

Thanks,

Marc

Klap-in commented 7 months ago

A quick Google search suggests ctype_xdigit() is part of ctype extension of PHP. Is it possible you to install it for PHP 8.3?

mwb455 commented 7 months ago

Incredible. How on earth did I miss that? @Klap-in, many many thanks :)

Edit: In case someone is drawing the same blank, the package is called php83-ctype in this case.