※Linux上でしか動作しません。Windowsの場合はなんとかしてください。
LaTeXファイルを直接ファイルに生成して、dviにコンパイルして、pngとして取り出す。
ファイル名は $filename = time()にランダムな文字列を追加したもの(にしよう)。
$template = ' \documentclass[12pt]{article} \usepackage{amsmath,amsthm,amssymb} \begin{document} \pagestyle{empty} $ I=\int_{0}^{ \frac {1}{2}} \frac{x}{\sqrt{1-x^2}} dx $ \end{document} ';
latexがインストールされていることを確認したうえで、実行演算子 “ (バッククォート) を用いて
$randname = time(); $filename = WWW_ROOT . 'files' . DS . 'pdf' . DS . 'dynamic' . DS . $randname; $filename2 = $filename.'.tex'; //ファイル書き出し file_put_contents($filename2 , $template );
//作業フォルダ指定 $dir = WWW_ROOT . 'files' . DS . 'pdf' . DS . 'dynamic' ; //シェルコマンド生成 $command = "/usr/bin/platex ".$filename; //実行(cd でカレント移動しておかないと /webroot で作業をしようとする) $test = `cd ${dir} ; ${command}`; pr($test); //できあがったdviファイルをpngに変換 //シェルコマンド生成 $command = "/usr/bin/dvipng -D 720 -T tight ".$filename; //実行(cd でカレント移動しておかないと /webroot で作業をしようとする) $test = `cd ${dir} ; ${command}`; pr($test);
動的に$template を生成すれば任意の数式のpng画像が生成される。
かっこええ!
生成された画像をpdfに埋め込んでウマー。 かな