投稿日:

TCPDFでCODE39のバーコードの読取精度が悪いので調整してみました。

この前の案件でTCPDFでCODE39のバーコードを表示することがあり、
バーコード小さくしてを印刷すると黒い線が太くて白い部分がつぶれるので
TCPDF自体を修正し、黒線を細くすることで読取精度を上げてみました。

以下修正個所です。 

tcpdf/tcpdf.phpの15421行目

foreach ($arrcode['bcode'] as $k => $v) {
// modified $v['w'] にバーコード1線分の太さ1か3で入っているので細さを調整したい数値(0.1)をセット
$bw= ($v['w'] > 1) ? $v['w'] * $xres - 0.1 : $v['w'] * $xres + 0.1;
if ($v['t']) {
// draw a vertical bar
$ypos = $y + $vpadding + ($v['p'] * $barh / $arrcode['maxh']);
$this->Rect($xpos, $ypos, $bw, ($v['h'] * $barh / $arrcode['maxh']), 'F', array(), $style['fgcolor']);
}
$xpos += $bw
}

これで認識率上がりました。0.1の数値を調整することでもうちょっと認識率上げれそうでした。

投稿日:

入力された情報が前回値と変わっている場合に、入力文字を変更(赤く)する方法

cakephp入力フォームで、前回と変更になった入力値は入力文字を変更(赤く)して表示したい場合のサンプルです。
前提条件
前回入力した値と今回入力する値は別で情報を管理します。
その上で、前回と今回の差がわかる状態で判断します。
モデルはSampleを使用します。

続きを読む 入力された情報が前回値と変わっている場合に、入力文字を変更(赤く)する方法

投稿日:

TCPDFでいつの間にか日本語のフォント・サブセットが使えるようになってた!!

いつもお世話になってるTCPDFですが
VER 5.2.000よりフォント・サブセットを使用できるのは知っていたのですが
日本語で使用するとCPUとメモリを使いすぎて使い物になりませんでした・・・

今までどおりフォントの全て埋め込みで対応していたのですがやはり3MBオーバーは重いなーと思っていました。(バックアップ用に生成したPDFとか置くのはとても無理でした)

以前案件で軽いPDFを出す必要がありだめもとで新しいTCPDF(6系)を使ってみたところ・・・
使えるようになってました!!(数100kbとかで出力できたりします。)

これでお客さんに重いって言われなくなります!

以下サンプルと注意事項です。

続きを読む TCPDFでいつの間にか日本語のフォント・サブセットが使えるようになってた!!