6

現在、FPDFを使用してかなり複雑なレポートを作成し、TCPDFにアップグレードしようとしていますが、TCPDFを介して実行されている同じコードの速度が約2倍遅いことがわかりました。私のPDFはすでに生成に最大1分かかるので、この速度を落とす余裕はありませんが、いくつかのTCPDF機能(ブックマークの作成など)を実際に利用したいと思います。

誰かがこの問題に関する情報を持っているなら、私は本当に感謝します-TCPDFを速くするためにあなたがしたこと、またはそれがFPDFよりも遅くなることを確認するだけなので、私はそれを忘れてFPDFに固執することができます。

4

4 に答える 4

4

これが甘い解決策です。私にとっては2分剃ります。PDFは3秒で作成されます!

http://www.bitrealm.net/2010/08/tcpdf-is-slow-here-is-the-solution/

交換

$font = $this->_getTrueTypeFontSubset($font, $subsetchars);

これとともに:

/ Alcal: $font2cache modification
// This modification creates utf-8 fonts only the first time,
// after that it uses cache file which dramatically reduces execution time
if (!file_exists($fontfile.'.cached')){
// calculate $font first time
$subsetchars = array_fill(0, 512, true); // fill subset for all chars 0-512
$font = $this->_getTrueTypeFontSubset($font, $subsetchars); // this part is actually slow!
// and then save $font to file for further use
$fp=fopen($fontfile.'.cached','w');
$flat_array = serialize($font); //
fwrite($fp,$flat_array);
fclose($fp);
}
else {
// cache file exist, load file
$fp=fopen($fontfile.'.cached','r');
$flat_array = fread($fp,filesize($fontfile.'.cached'));
fclose($fp);
$font = unserialize($flat_array);
}
于 2010-09-17T22:09:06.620 に答える
2

http://www.tcpdf.org/performances.php

デフォルトでは、TCPDF はフォントのサブセット化を有効にして、埋め込まれた Unicode TTF フォントのサイズを縮小します。このプロセスは非常に遅く、大量のメモリを必要としますが、setFontSubsetting(false) メソッドを使用してオフにすることができます。

これは私にとって本当の解決策でした。

于 2011-06-15T12:11:29.387 に答える
1

バージョン 5.9.067 以降、TCPDF のパフォーマンスは大幅に改善されました。新しいリリースごとにパフォーマンスが向上しているようです。さらに、 http://www.tcpdf.org/performances.phpで説明されているように、パフォーマンスを向上させるように設定できます。

于 2011-04-23T15:35:03.507 に答える
0

TCPDFのパフォーマンスは、構成ファイルで未使用の機能を無効にし、フォントのサブセット化などの遅い機能をオフにすることで調整できます。非UTF8モードでコアフォント(Helvetica、Timesなど)のみを使用すると、優れたパフォーマンスを得ることができます。さらに、サーバーにXCacheをインストールして、PHPのパフォーマンスを向上させることができます。詳細については、公式のhttp://www.tcpdf.orgWebサイトおよびフォーラムを確認してください。

于 2010-08-06T11:15:05.653 に答える