前提・実現したいこと
TCPDFでPDF出力を実装しています。
データベースからの各値を座標を指定して、Text()を使い出力しています。
while文で回しているので、全データがバランスよく配置されずに文字同士が重なったりと困っています。
繰り返し文でPDF出力させる場合、どのような書き方をすれば、文字が被らないのでしょうか。
発生している問題・エラーメッセージ
エラーメッセージなどではなく、PDF画面で文字が重なり合います。
該当のソースコード
php
1<?php 2ini_set('display_errors', "On"); 3date_default_timezone_set('Asia/Tokyo'); 4 5include( 'set.inc' ); 6//PDFライブラリの読み込み 7require_once('tcpdf/tcpdf.php'); 8session_cache_limiter('none'); 9 10$sql = "SET NAMES utf8"; 11mysql_query($sql); 12 13 14// $user_id = $_GET['user_id']; 15// $to_user_id = $_GET['to_user_id']; 16// $page = $_GET['page']; 17$sql = $_GET['sql']; 18 19 20 21//echo $sql; 22 23$result = mysql_query($sql); 24 25//tcPDFの設定用定数 26$orientation = 'Landscape'; // 用紙の向き 27$unit = 'mm'; // 単位 28$format = 'A4'; // 用紙フォーマット 29$unicode = true; // ドキュメントテキストがUnicodeの場合にTRUEとする 30$encoding = 'UTF-8'; // 文字コード 31$diskcache = false; // ディスクキャッシュを使うかどうか 32$tcpdf = new TCPDF($orientation,$unit,$format,$unicode,$encoding,$diskcache); 33$tcpdf->setPrintHeader( false ); //ヘッダーの横線をなくす 34$tcpdf->AddPage(); 35 36// $font = new TCPDF_FONTS(); 37// $myFont = $font->addTTFfont("nishiweb/public_html/tcpdf/font/font_1_honokamin.ttf"); 38$tcpdf->SetFont('kozminproregular', "", 10); 39//座標設定 40$x_zip = 20; //横(郵便番号) 41$y_zip = 1; //縦(郵便番号) 42 43$x_sample = 50; //横(サンプル) 44$y_sample = 1; //縦(サンプル) 45 46$x_addr = 20; //横(住所) 47$y_addr = 8; //縦(住所) 48 49$x_banchi = 20; //横(番地) 50$y_banchi = 10; //縦(番地) 51 52$x_userid = 20; //横(ユーザーID) 53$y_userid = 12; //縦(ユーザーID) 54 55$x_name = 30; //横(ユーザー) 56$y_name = 15; //縦(ユーザー) 57 58 59//出力cellの値設定 60$w = 100; //領域幅 61$h = 30; //領域高さ 62 63 64$counter = 0; 65 66while( $row = mysql_fetch_array($result) ) { 67 $user_id = $row['user_id']; 68 $name = $row['name']; 69 $zip = $row['zip']; 70 $addr = $row['addr']; 71 $banchi = $row['banchi']; 72 $room = $row['room']; 73 $tel = $row['tel']; 74 75 $zip1 = substr($zip, 0, 3); 76 $zip2 = substr($zip, -4); 77 $zip = $zip1."-".$zip2; 78 79 // $y_zip *= 10; 80 // $y_sample *=10; 81 // $y_addr *= 2.2; 82 // $y_banchi += 2; 83 // $y_userid += 2; 84 // $y_name += 2; 85 86 87 $tcpdf->SetFont('kozminproregular', '', 11); 88 $tcpdf->Text($x_zip, $y_zip, '〒'.$zip); 89 90 $tcpdf->SetFont('kozminproregular', '', 11); 91 $tcpdf->Text($x_sample, $y_sample, 'サンプル在中'); 92 93 $tcpdf->SetFont('kozminproregular', '', 11); 94 $tcpdf->Text($x_addr, $y_addr, $addr); 95 96 $tcpdf->SetFont('kozminproregular', '', 11); 97 $tcpdf->Text($x_banchi, $y_banchi, $banchi); 98 99 $tcpdf->SetFont('kozminproregular', '', 11); 100 $tcpdf->Text($x_userid, $y_userid, $user_id); 101 102 $tcpdf->SetFont('kozminproregular', '', 11); 103 $tcpdf->Text($x_name, $y_name, $name.'様'); 104 105 106} 107ob_end_clean(); 108$tcpdf->Output("print_saple_old.pdf", "I"); // pdf表示設定 109?> 110 111 112
試したこと
コードにコメントアウトしていますが、座標に数字を足すあるいは掛けて、出力場所をずれるようにしました。
それでも文字同士がかぶります。
元々は$htmlに出力箇所を代入していましたが、TCPDFはサポートしていないhtmlタグやcssがあり、理想の出力画面にならなかったので、座標を指定する方法に変更しました。
補足情報(FW/ツールのバージョンなど)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。