質問編集履歴

4

誤記訂正

2019/02/17 11:35

投稿

saya24
saya24

スコア222

test CHANGED
File without changes
test CHANGED
@@ -46,7 +46,7 @@
46
46
 
47
47
  global $html2;
48
48
 
49
- $html2 = '<div style="float:right; text-align: right;"><span>'.date('Y年m月d日').' </span><span>P.'.$pcnt.'</span></div><div style="float:left;" ><span class="b12" style="text-align: left;">積水メディカル株式会社</span><span> 行</span></div>
49
+ $html2 = '<div style="float:right; text-align: right;"><span>'.date('Y年m月d日').' </span><span>P.'.$pcnt.'</span></div><div style="float:left;" ><span class="b12" style="text-align: left;">○○○○株式会社</span><span> 行</span></div>
50
50
 
51
51
  <div style="clear: both"></div>
52
52
 

3

誤記訂正

2019/02/17 11:35

投稿

saya24
saya24

スコア222

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- PHPでDBの内容を、TCPDFというライブラリを使用してPDFに出力しようとしています。
1
+ PHPで TCPDFというライブラリを使用して DBの内容をPDFに出力しようとしています。
2
2
 
3
3
  初心者向けに紹介されたサイト[参考にしたサイト](https://www.sejuku.net/blog/73032)をみながらなんとかPDFが画面に現われるようになりましたが、
4
4
 
@@ -28,7 +28,7 @@
28
28
 
29
29
 
30
30
 
31
- 尚、$rows には4列の項目を保持する100レコードの連想配列す。
31
+ 尚、$rows には4列の項目を保持する100レコードの連想配列が格納されています。
32
32
 
33
33
  やはり$tcpdf->writeHTML($html);をfunctionにくくったことで 動かなくなってしまっているのでしょうか?(そうだとしたらどうすれば良いのか分からないので、対策をご教示頂けたら幸いです)
34
34
 

2

自分の試しているコーディングを追記

2019/02/17 10:27

投稿

saya24
saya24

スコア222

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- PHPでDBの内容を、TCPDFというライブラリを使用してPDFに出力しようとしています。
1
+ PHPでDBの内容を、TCPDFというライブラリを使用してPDFに出力しようとしています。
2
2
 
3
3
  初心者向けに紹介されたサイト[参考にしたサイト](https://www.sejuku.net/blog/73032)をみながらなんとかPDFが画面に現われるようになりましたが、
4
4
 
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- こちらの記事にあるとおり、現在の当方のコーディングも最終的に
9
+ 一般的な記事では
10
10
 
11
11
  ```PHP
12
12
 
@@ -14,34 +14,188 @@
14
14
 
15
15
  ```
16
16
 
17
- のオブジェクト・メソッドでPDFに内容を出力しています。
18
-
19
-
20
-
21
- つまは一つ変数($html)に出力したい内容を収なければならない認識をしていて、自分も事前DB内容連想配列格納、これをHTML形式のTABLEとしてそ「変数」に格納する手順をとっています。
17
+ のオブジェクト・メソッドで1度きりの表示内容設定ですが、改ページ制御のために手順何回か分けて(ページヘッダ部分とTABLEのHTMLを格納)行って、PDFへの出力、
22
-
23
-
24
-
25
- 【質問】
26
-
27
- 参考にしたページからすると、ページの追加は恐らくに
28
18
 
29
19
  ```PHP
30
20
 
31
- $tcpdf->AddPage();
32
-
33
- ```というメソッドから達成されていると推察できるのですが、適時改ページを行うには、現在の開発手順(一つの変数に出力したい内容マルマルが収まっている)では達成できない、ということなのでしょうか?
34
-
35
- 変数改ペジの意思を宣言ることきるのでしょう
36
-
37
- 現在のところ制御が一切できていないので、ページ最下部出力が行れたのち 自動的な改ページが行れている感じです
38
-
39
- 2ページ目の頭に、TABLEのTHEADの部分が勝手に表れているのにもびっくりしましたが...(本当はTABLEのヘッダだけでなく、帳票タイトル{日付・宛先・注文書というタイトルetc}をページヘッダとして改ページ後は表して欲しい)
40
-
41
-
42
-
43
- どういった手順、改ページを制御できるのか?どからどこまで部分がページヘッダあると宣言きるのでしょうか?
44
-
45
-
46
-
47
- 分かりやすいサンプルが掲載された記事・サイトなどご紹介頂けたら幸いです!
21
+ $tcpdf->Output('XXXXXX.pdf', 'I');
22
+
23
+ ```
24
+
25
+ を最後1回行う構成で考えています。以下現況のコディングでが、PDFが現われくなてしまいました。原因は一体なにでしょう?
26
+
27
+ 今回functionにしているmPage()部分を、functionはせず単純に2回立続けに書たらちゃんと2ページに渡って同じデータの内容が表れてきした。ということは2回以上に渡って、writeHTMLメソッドれたった1回Outputのメソッドれても 問題はなということですよねぇ??
28
+
29
+
30
+
31
+ 尚、$rows には4列の項目を保持する100レコードの連想配列です。
32
+
33
+ やはり$tcpdf->writeHTML($html);をfunctionにくくったこと 動かなくなってしまっているのでしょうか?(そうだとしたらうすれば良いの分かないので、対策をご教示頂けたら幸いす)
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+ ```PHP
42
+
43
+ function hMaker($pcnt) {
44
+
45
+
46
+
47
+ global $html2;
48
+
49
+ $html2 = '<div style="float:right; text-align: right;"><span>'.date('Y年m月d日').' </span><span>P.'.$pcnt.'</span></div><div style="float:left;" ><span class="b12" style="text-align: left;">積水メディカル株式会社</span><span> 行</span></div>
50
+
51
+ <div style="clear: both"></div>
52
+
53
+ <h1>注文書</h1>
54
+
55
+ <table><thead><tr><th style="width: 30%">取引先名</th><th style="width: 40%">住所</th><th style="width: 15%">TEL</th><th style="width: 15%">郵便番号</th></tr></thead>';
56
+
57
+ }
58
+
59
+
60
+
61
+ function dMaker_f($col1,$col2,$col3,$col4) {
62
+
63
+ global $html2;
64
+
65
+ $html2 = $html2.'<tbody><tr><td style="width: 30%">'.$col1.'</td><td style="width: 40%">'.$col2.'</td><td style="width: 15%">'.$col3.'</td><td style="width: 15%">'.$col4.'</td></tr>';
66
+
67
+ }
68
+
69
+
70
+
71
+ function dMaker($col1,$col2,$col3,$col4) {
72
+
73
+ global $html2;
74
+
75
+ $html2 = $html2.'<tr><td style="width: 30%">'.$col1.'</td><td style="width: 40%">'.$col2.'</td><td style="width: 15%">'.$col3.'</td><td style="width: 15%">'.$col4.'</td></tr>';
76
+
77
+ }
78
+
79
+
80
+
81
+
82
+
83
+ $tcpdf = new TCPDF("L", "mm", "A4", true, "UTF-8" );
84
+
85
+ $tcpdf->SetFont("kozgopromedium", "", 10);
86
+
87
+ $tcpdf->setPrintHeader(false);
88
+
89
+ $tcpdf->SetDisplayMode(80);
90
+
91
+ $tcpdf->SetAutoPageBreak(false); //自動改ページモードをオフ
92
+
93
+
94
+
95
+ $linecount = 99;
96
+
97
+ $pcnt = 0;
98
+
99
+ foreach($rows as $row){
100
+
101
+ if (count($rows)> 0 && $linecount > 50) {
102
+
103
+ if ($pcnt > 0) {
104
+
105
+ $html2 = $html2.'</tbody></table>';
106
+
107
+ mPage();
108
+
109
+ $html2 = null;
110
+
111
+ }
112
+
113
+ $linecount = 0;
114
+
115
+ $pcnt++;
116
+
117
+ $tcpdf->AddPage(); // 【ライブラリのメソッド】:ページ手配
118
+
119
+ hMaker($pcnt); // HTMLでヘッダのデザインを変数$html2に追記
120
+
121
+ dMaker_f($row["tname"], $row["taddress"], $row["ttelno"], $row["tpostno"]);// HTMLで明細を変数$html2に追記(TBODYタグ含む)
122
+
123
+ } else {
124
+
125
+ dMaker($row["tname"], $row["taddress"], $row["ttelno"], $row["tpostno"]);// HTMLで明細を変数$html2に追記(TBODYタグ含まない)
126
+
127
+ }
128
+
129
+ $linecount++;
130
+
131
+ }
132
+
133
+ if (count($rows)> 0) {
134
+
135
+ $html2 = $html2.'</tbody></table>';
136
+
137
+ } else {
138
+
139
+ $html2 = "対象はありません。";
140
+
141
+ }
142
+
143
+ mPage();
144
+
145
+
146
+
147
+ //★☆★TCPDFを紹介している記事では、出力内容($html)が仕上がったら この部分を一度だけ実行
148
+
149
+ //★☆★改ページ制御のため、ページ単位にこの部分を呼ぶようにしてみた。
150
+
151
+ function mPage() {
152
+
153
+ // $tcpdf->AddPage(); //【ライブラリのメソッド】:ページ手配⇒コメント!!!
154
+
155
+ $html = <<< EOF
156
+
157
+ <style>
158
+
159
+ h1 {
160
+
161
+ font-size: 24px;
162
+
163
+ text-align: center;
164
+
165
+ }
166
+
167
+ span.b12 {
168
+
169
+ font-size: 12px;
170
+
171
+ font-weight: bold;
172
+
173
+ }
174
+
175
+ table {
176
+
177
+ border-collapse: collapse;
178
+
179
+ }
180
+
181
+ table th, table td {
182
+
183
+ border: solid 1px black;
184
+
185
+ }
186
+
187
+ </style>
188
+
189
+ EOF;
190
+
191
+ $tcpdf->writeHTML($html.$html2); // 【ライブラリのメソッド】:表示内容の設定
192
+
193
+ }
194
+
195
+
196
+
197
+
198
+
199
+ $tcpdf->Output('XXXXX.pdf', 'I'); // 【ライブラリのメソッド】:表示
200
+
201
+ ```

1

誤記ていせい

2019/02/17 10:22

投稿

saya24
saya24

スコア222

test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- こちらの記事にあるとり、現在の当方のコーディングも最終的に
9
+ こちらの記事にあるとり、現在の当方のコーディングも最終的に
10
10
 
11
11
  ```PHP
12
12