テンプレートPDFに配列データを表示させたいのですが、
テンプレートの表が不規則な幅のため最後のforeach文でどのようにX座標を足していったらいいかわからず行き詰まっております。
テンプレートの表なんですが、
表が横に計14項目あり、
最初のセルが、横幅1cm、2個目が2cm3個目が3cmの表で縦幅は均等です。
以下のコードもこちらのサイトで教えていただいたもので恐縮ですが、またご教授ください。
PHP
1 $data = array( 2 array("1", "testest", "TESTTEST", "TEST", "TT", "00000", "1", "000000", "0000", "0000", "0000", "0000", "00000", "test" ), 3 array("1", "testest", "TESTTEST", "TEST", "TT", "00000", "1", "000000", "0000", "0000", "0000", "0000", "00000", "test" ), 4 array("1", "testest", "TESTTEST", "TEST", "TT", "00000", "1", "000000", "0000", "0000", "0000", "0000", "00000", "test" ), 5 ); 6 7 include(dirname(__FILE__).'/tcpdf/tcpdf.php'); 8 include(dirname(__FILE__).'/fpdi/fpdi.php'); 9 10 // PDF関連の設定 11 define('ORIENTATION', 'L'); //横向き 12 define('FORMAT', 'A4'); 13 14 define('TEMPLATE_FILE', 'test.pdf'); 15 16 // 書き込み位置の設定(単位:ミリメートル) 17 define('CELL_TOP', 83.5); 18 define('CELL_LEFT', 7.5); 19 define('FIRST_CELL_WIDTH', 15); 20 define('OTHER_CELL_WIDTH', 25); 21 define('CELL_HEIGHT', 10); 22 23 $pdf = new FPDI(); 24 25 // PDF 設定 26 $pdf->SetMargins(0, 0, 0); 27 $pdf->SetAutoPageBreak(true,15); 28 $pdf->SetCellPadding(0); 29 $pdf->setPrintHeader(false); 30 $pdf->setPrintFooter(false); 31 $pdf->SetFont('kozgopromedium', '', 10); 32 $pdf->AddPage(ORIENTATION, FORMAT); 33 34 // テンプレート関連処理 35 $pdf->setSourceFile(TEMPLATE_FILE); 36 $template = $pdf->importPage(1); 37 $pdf->useTemplate($template, 0, 0); 38 39 // データを書き込む 40 $pdf->SetXY(CELL_LEFT, CELL_TOP); 41 42 foreach ($data as $row) { 43 44 foreach ($row as $j => $col) { 45 46 $w = OTHER_CELL_WIDTH; 47 48 // 先頭セルの設定 49 if ($j == 0) { 50 $w = FIRST_CELL_WIDTH; 51 $pdf->SetXY(CELL_LEFT, $pdf->GetY() + CELL_HEIGHT); 52 } 53 54 $pdf->MultiCell( $w, CELL_HEIGHT, $row[$j], 0, 'C', 0, 0, $pdf->GetX(), $pdf->GetY(), false, 1, true, true, CELL_HEIGHT, 'M', false); 55 56 } 57 58 59 } 60 61 $pdf->Output('test.pdf', 'D');
追記:
ifで条件分岐までは出来たんですが、
初めの[0]のセルと、[1]のセルがどうしてもずれてしまうのですが原因が何か突き止められません。
先頭セルが例えば1と表示してるんですが、その横のセルが若干右下に表示されてしまいます。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/07 05:19
2019/10/07 06:47
退会済みユーザー
2019/10/07 08:15
2019/10/07 09:26 編集
退会済みユーザー
2019/10/07 09:38
退会済みユーザー
2019/10/07 09:49
退会済みユーザー
2019/10/07 09:52 編集
退会済みユーザー
2019/10/07 09:59
退会済みユーザー
2019/10/07 10:21
2019/10/07 15:05