所以,我已经为此工作了一段时间。
我有一个网页,其中Mathjax输出到SVG。我得到了div的内容,然后将其重新格式化以使用mPDF和隐藏的mPDF标签进行打印。我使用了mPDF文档中的示例内容来使其正常工作。
$mpdf = new \Mpdf\Mpdf('');
$html = $_POST['bodydata'];
$html = urldecode($html);
preg_match('/<svg[^>]*>\s*(<defs.*?>.*?<\/defs>)\s*<\/svg>/', $html, $m);
$defs = $m[1];
$html = preg_replace('/<svg[^>]*>\s*<defs.*?<\/defs>\s*<\/svg>/', '', $html);
$html = preg_replace('/(<svg[^>]*>)/', "\\1".$defs, $html);
preg_match_all('/<svg([^>]*)style="(.*?)"/', $html, $m);
for ($i = 0; $i < count($m[0]); $i++) {
$style = $m[2][$i];
preg_match('/width: (.*?);/',$style, $wr);
$w = $mpdf->ConvertSize($wr[1], 0, $mpdf->FontSize) * $mpdf->dpi/25.4;
preg_match('/height: (.*?);/',$style, $hr);
$h = $mpdf->ConvertSize($hr[1], 0, $mpdf->FontSize) * $mpdf->dpi/25.4;
$replace = '<svg'.$m[1][$i].' width="'.$w.'" height="'.$h.'" style="'.$m[2][$i].'"';
$html = str_replace($m[0][$i], $replace, $html);
}
现在这有一个非常奇怪的输出。
(\ \ frac {2} {3})正确地去除了很多(\东西,但是,它没有显示为小数,而只是显示为23。\ sqrt {45}显示为45。>
说实话,这有点亏。
这是预期的输出吗? mpdf页面上的示例文件是无效链接。