| |
PDFでバーコード出力
PHPのPDF出力を利用し、バーコードを出力してみました。当初は倍率が変わってしまう為、読み込みが出来ないと思っていましたが、試しにテストしてみたらうまく読み込みが出来ました。
下のコードはCODE39のバーコード出力を行う関数です。
| |
<?php
class pdfclass
{
//CODE39のバーコードを出力するための関数
function Code39Barcode($pdf,$x,$y,$yh,$str){
$str="*".$str."*";
$bar="";
for($i=0;$i<strlen($str);$i++){
$outmoji = substr($str,$i,1);
if($outmoji == "1")
$bar.="1101001010110";
else if($outmoji == "2")
$bar.="1011001010110";
else if($outmoji == "3")
$bar.="1101100101010";
else if($outmoji == "4")
$bar.="1010011010110";
else if($outmoji == "5")
$bar.="1101001101010";
else if($outmoji == "6")
$bar.="1011001101010";
else if($outmoji == "7")
$bar.="1010010110110";
else if($outmoji == "8")
$bar.="1101001011010";
else if($outmoji == "9")
$bar.="1011001011010";
else if($outmoji == "0")
$bar.="1010011011010";
else if($outmoji == "*")
$bar.="1001011011010";
else if($outmoji == "A")
$bar.="1101010010110";
else if($outmoji == "B")
$bar.="1011010010110";
else if($outmoji == "C")
$bar.="1101101001010";
else if($outmoji == "D")
$bar.="1010110010110";
else if($outmoji == "E")
$bar.="1011011001010";
else if($outmoji == "F")
$bar.="1010100110110";
}
for($i=0;$i<strlen($bar);$i++){
if(substr($bar,$i,1) == "1"){
PDF_moveto($pdf,$x+($i),$y);
PDF_lineto($pdf,$x+($i),$y-$yh);
pdf_stroke($pdf);
}
}
}
}
?> |
|
下のコードはPDFを出力するコードです。特に日本語が入っているわけではないので問題はないのですが、EUCで書いたほうが後々いいかもしれません。
| |
<?
$barpdf = new pdfclass();
pdf_set_parameter($pdf, "warning", "true");
pdf_set_info($pdf, "Creator", "");
pdf_set_info($pdf, "Author", "");
pdf_set_info($pdf, "Title", "");
pdf_begin_page($pdf,842,595);
pdf_set_parameter($pdf, "transition", "wipe");
pdf_set_value($pdf, "duration", 0.5);
$barpdf->Code39Barcode($pdf,100,100,10,"12345ABCD");
pdf_restore($pdf);
pdf_end_page($pdf);
pdf_close($pdf);
$buf = pdf_get_buffer($pdf);
$len = strlen($buf);
header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=test.pdf");
print $buf;
pdf_delete($pdf);
?>
|
|
実際には運用で使用していませんが、使う用途はいろいろと出てくると思います。 |
|