PHPでPDF出力 3(体裁を整える)

3.縦、横位置を定義して体裁を整える

取り敢えず、Microsoft Visual StudioVB.NETで開発することにした。

まずは、Excelファイルを読み込み、セル書式から文字列をジェネレートするために、

文字列、フォント名、フォントサイズ、前景色、横縦揃えに絞った。

その結果は、1行に重なってしまった。

 

セルの絶対位置の取得

 Excelのセル位置を先頭からの絶対値(ミリ)で取得することにした。

1ピクセルが約0.0846ミリとして計算すれば、該当セルまでの絶対値が求まる、ハズ。

0.0何ミリと細かくしても意味がないので、10ピクセルで0.85ミリで計算することにした。

結果は、以下の通り無残な状態。

     f:id:sesjk:20200429113610p:plain

ピクセルからミリへの変換が間違っているのか確かめたが、10ピクセルで0.085で計算し、小数点2位で四捨五入している。

ならば、セルのピクセル数の取得が・・・。

Excelのページレイアウト表示で、受注日(列B)と図番(列D)までの値を調べた。

受注日(列B)は1.1ミリ(4ピクセル)、図番(列D)は21.4ミリ(82ピクセル)

まるで違う。はて?

嗚呼~、なんてこった。ピクセルではなく単位はポイント(世間の常識?)

1ポイントを0.35ミリにプログラムを修正して再実行。

結果は満足できる出来栄えに、ひとり悦に入る。

f:id:sesjk:20200429121314p:plain

SetXYを忘れずに。

--------------------------------------------------------------

$tcpdf->SetFont('kozgopromedium', '',11);
$tcpdf->SetTextColor(0,0,0);
$source ='受 注 日';
$tcpdf->SetXY(1.2, 2.9);
$tcpdf->Cell(21,8, $source, 0, 0,'C',0,'',0,0,'T','M');
$source ='図 番';
$tcpdf->SetFont('kozgopromedium', '',11);
$tcpdf->SetXY(21.9, 2.9);
$tcpdf->Cell(59,8, $source, 0, 0,'C',0,'',0,0,'T','M');

--------------------------------------------------------------

次は、罫線の処理の追加