关于导出pdf的例子

  1 public static PdfPTable writeTitle(BaseFont bf, PdfPTable table,
  2             HakenDaityouVO bean, String pageNum, String pageCnt) {
  3         // 字体
  4         Font font = new Font(bf, 6);
  5         // タイトル字体
  6         Font fonttitle = new Font(bf, 9);
  7         // ボディタイトル色
  8         Color color_gray = new Color(210, 210, 210);
  9         // ボディテーブル格式
 10         //--------------修正 2009-1-19 start-------------
 11         float[] widths1 = { 0.07f, 0.07f, 0.065f, 0.285f, 0f, 0.285f, 0f, 0.33f,
 12                 0f, 0f, 0.09f, 0.09f, 0.04f, 0.05f, 0.04f, 0.34f, 0f, 0f };//为pdf分配列
 13         // --------------修正 2009-1-19 end---------------
 14         // --------------修正 2009-1-21 start-------------
 15         // タイトルテーブル格式
 16         float[] widthst = { 0.14f, 0.25f,0.015f, 0.508f,0.010f, 0.16f,0.19f,0.502f};
 17         // --------------修正 2009-1-21 end---------------
 18         float[] widths3 = { 0.1f };
 19         // 一行
 20         PdfPTable table_title3 = new PdfPTable(widthst);
 21         PdfPCell cell_title3 = new PdfPCell(table_title3);//这是widths1,这么多列的table
 22         // 間距
 23         cell_title3.setPadding(0);
 24         cell_title3.setColspan(8);
 25 
 26         // 一行 title
 27         cell_title3 = new PdfPCell(table_title3);
 28         // 合併5列
 29         cell_title3.setColspan(8);
 30         cell_title3.setBorder(Rectangle.NO_BORDER);
 31         // 新規セル 内容は派遣先管理台帳
 32         Paragraph paraph_title3 = new Paragraph("派遣先管理台帳", fonttitle);
 33         PdfPCell cell_s_title3 = new PdfPCell(paraph_title3);
 34         cell_s_title3.setColspan(8);
 35         setCellLMT(cell_s_title3);
 36         cell_s_title3.setBorder(Rectangle.NO_BORDER);
 37         cell_s_title3.setPadding((float) 0.6);
 38         // テーブルにセルを添加する
 39         table_title3.addCell(cell_s_title3);
 40         
 41         //------------修正 2009-1-19 start -------------
 42         paraph_title3 = new Paragraph("", font);
 43         cell_s_title3 = new PdfPCell(paraph_title3);
 44         // 合併6列
 45         cell_s_title3.setColspan(8);
 46         cell_s_title3.setPadding((float) 0.6);
 47         cell_s_title3.setBorder(Rectangle.NO_BORDER);
 48         table_title3.addCell(cell_s_title3);
 49         // ------------修正 2009-1-19 end -------------
 50         // ****************派遣元事業主 一行開始****************
 51         // 新規セル 内容は派遣元事業主
 52         paraph_title3 = new Paragraph("派遣元事業主", font);
 53         cell_s_title3 = new PdfPCell(paraph_title3);
 54         cell_s_title3.setColspan(1);
 55         setCellCMT(cell_s_title3);
 56         cell_s_title3.setBorder(Rectangle.NO_BORDER);
 57         // テーブルにセルを添加する
 58         table_title3.addCell(cell_s_title3);
 59 
 60         // 新規セル 内容は株式会社シスプロ
 61         paraph_title3 = new Paragraph("株式会社シスプロ", font);
 62         cell_s_title3 = new PdfPCell(paraph_title3);
 63         cell_s_title3.setColspan(1);
 64         setCellLMT(cell_s_title3);
 65         cell_s_title3.setBorder(Rectangle.NO_BORDER);
 66         // テーブルにセルを添加する
 67         table_title3.addCell(cell_s_title3);
 68         
 69         paraph_title3 = new Paragraph("", font);
 70         cell_s_title3 = new PdfPCell(paraph_title3);
 71         cell_s_title3.setColspan(1);
 72         setCellLMT(cell_s_title3);
 73         cell_s_title3.setBorder(Rectangle.NO_BORDER);
 74         // テーブルにセルを添加する
 75         table_title3.addCell(cell_s_title3);
 76 
 77         // 新規セル 内容は大阪市北区梅田2-4-13阪神産経桜橋ビル6階
 78         paraph_title3 = new Paragraph("大阪市北区梅田2-4-13阪神産経桜橋ビル6階".trim(), font);
 79         cell_s_title3 = new PdfPCell(paraph_title3);
 80         cell_s_title3.setColspan(1);
 81         setCellLMT(cell_s_title3);
 82         cell_s_title3.setBorder(Rectangle.NO_BORDER);
 83         // テーブルにセルを添加する
 84         table_title3.addCell(cell_s_title3);
 85         
 86         paraph_title3 = new Paragraph("", font);
 87         cell_s_title3 = new PdfPCell(paraph_title3);
 88         cell_s_title3.setColspan(1);
 89         setCellLMT(cell_s_title3);
 90         cell_s_title3.setBorder(Rectangle.NO_BORDER);
 91         // テーブルにセルを添加する
 92         table_title3.addCell(cell_s_title3);
 93 
 94         // 新規セル 内容はTEL 06-4796-4180 
 95         paraph_title3 = new Paragraph("TEL: 06-4796-4180", font);
 96         cell_s_title3 = new PdfPCell(paraph_title3);
 97         cell_s_title3.setColspan(1);
 98         setCellLMT(cell_s_title3);
 99         cell_s_title3.setBorder(Rectangle.NO_BORDER);
100         // テーブルにセルを添加する
101         table_title3.addCell(cell_s_title3);
102         
103         // 新規セル 内容はFAX 06-4796-4188
104         paraph_title3 = new Paragraph("FAX: 06-4796-4188", font);
105         cell_s_title3 = new PdfPCell(paraph_title3);
106         cell_s_title3.setColspan(1);
107         setCellLMT(cell_s_title3);
108         cell_s_title3.setBorder(Rectangle.NO_BORDER);
109         // テーブルにセルを添加する
110         table_title3.addCell(cell_s_title3);
111 
112         // 新規セル 内容は今のうちのページ数 / 全部のページ数
113         paraph_title3 = new Paragraph(pageNum + "/" + pageCnt, font);
114         cell_s_title3 = new PdfPCell(paraph_title3);
115         cell_s_title3.setColspan(1);
116         cell_s_title3.setBorder(Rectangle.NO_BORDER);
117         // セル横対斉方式
118         cell_s_title3.setHorizontalAlignment(Element.ALIGN_RIGHT);
119         // セル縦対斉方式
120         cell_s_title3.setVerticalAlignment(Element.ALIGN_MIDDLE);
121         // 間距    
122         // テーブルにセルを添加する
123         table_title3.addCell(cell_s_title3);
124         // ****************派遣元事業主 一行終了****************
125 
126         // ****************派遣元事業所 一行開始****************
127         // 新規セル 内容は派遣元事業所
128         paraph_title3 = new Paragraph("派遣元事業所", font);
129         cell_s_title3 = new PdfPCell(paraph_title3);
130         cell_s_title3.setColspan(1);
131         setCellCMT(cell_s_title3);
132         cell_s_title3.setBorder(Rectangle.NO_BORDER);
133         // テーブルにセルを添加する
134         table_title3.addCell(cell_s_title3);
135 
136         // 派遣元事業所名
137         String hmjigyoNam = bean.getHmjigyoNam();
138         hmjigyoNam = setString(hmjigyoNam);
139         // 新規セル 内容は 派遣元事業所名
140         paraph_title3 = new Paragraph(hmjigyoNam, font);
141         cell_s_title3 = new PdfPCell(paraph_title3);
142         cell_s_title3.setColspan(1);
143         setCellLMT(cell_s_title3);
144         cell_s_title3.setBorder(Rectangle.NO_BORDER);
145         // テーブルにセルを添加する
146         table_title3.addCell(cell_s_title3);
147         
148         paraph_title3 = new Paragraph("", font);
149         cell_s_title3 = new PdfPCell(paraph_title3);
150         cell_s_title3.setColspan(1);
151         setCellLMT(cell_s_title3);
152         cell_s_title3.setBorder(Rectangle.NO_BORDER);
153         // テーブルにセルを添加する
154         table_title3.addCell(cell_s_title3);
155 
156         // 派遣元事業所住所
157         String hmjigyouAddr = bean.getHmjigyouAddr();
158         hmjigyouAddr = setString(hmjigyouAddr);
159         // 新規セル 内容は 派遣元事業所住所
160         paraph_title3 = new Paragraph(hmjigyouAddr, font);
161         cell_s_title3 = new PdfPCell(paraph_title3);
162         cell_s_title3.setColspan(1);
163         setCellLMT(cell_s_title3);
164         cell_s_title3.setBorder(Rectangle.NO_BORDER);
165         // テーブルにセルを添加する
166         table_title3.addCell(cell_s_title3);
167         
168         paraph_title3 = new Paragraph("", font);
169         cell_s_title3 = new PdfPCell(paraph_title3);
170         cell_s_title3.setColspan(1);
171         setCellLMT(cell_s_title3);
172         cell_s_title3.setBorder(Rectangle.NO_BORDER);
173         // テーブルにセルを添加する
174         table_title3.addCell(cell_s_title3);
175             
176         // 派遣元事業所TEL
177         String hmjigyoTel = bean.getHmjigyoTel();
178         hmjigyoTel = setString(hmjigyoTel);
179         // 新規セル 内容は 派遣元事業所TEL 派遣元事業所FAX 
180         paraph_title3 = new Paragraph("TEL: "+hmjigyoTel, font);
181         cell_s_title3 = new PdfPCell(paraph_title3);
182         cell_s_title3.setColspan(1);
183         setCellLMT(cell_s_title3);
184         cell_s_title3.setBorder(Rectangle.NO_BORDER);
185         // テーブルにセルを添加する
186         table_title3.addCell(cell_s_title3);
187         
188         // 派遣元事業所FAX
189         String hmjigyoFax = bean.getHmjigyoFax();
190         hmjigyoFax = setString(hmjigyoFax);
191         // 新規セル 内容は 派遣元事業所FAX
192         paraph_title3 = new Paragraph("FAX: "+hmjigyoFax, font);
193         cell_s_title3 = new PdfPCell(paraph_title3);
194         cell_s_title3.setColspan(1);
195         setCellLMT(cell_s_title3);
196         cell_s_title3.setBorder(Rectangle.NO_BORDER);
197         // テーブルにセルを添加する
198         table_title3.addCell(cell_s_title3);
199 
200         // 新規セル 内容は 派遣元事業所TEL FAX
201         paraph_title3 = new Paragraph("", font);
202         cell_s_title3 = new PdfPCell(paraph_title3);
203         // 合併6列
204         cell_s_title3.setColspan(1);
205         setCellCMT(cell_s_title3);
206         cell_s_title3.setBorder(Rectangle.NO_BORDER);
207         table_title3.addCell(cell_s_title3);
208         // ****************派遣元事業所 一行終了****************
209 
210         // ****************派遣労働者 一行開始****************
211         paraph_title3 = new Paragraph("",new Font(bf,2));
212         cell_s_title3 = new PdfPCell(paraph_title3);
213         // 合併6列
214         cell_s_title3.setColspan(8);
215         cell_s_title3.setBorder(Rectangle.NO_BORDER);
216         cell_s_title3.setPadding((float) 0.55);
217         table_title3.addCell(cell_s_title3);
218         
219         // 新規セル 内容は 派遣労働者
220         paraph_title3 = new Paragraph("派遣労働者", font);
221         cell_s_title3 = new PdfPCell(paraph_title3);
222         cell_s_title3.setColspan(1);
223         setCellCMT(cell_s_title3);
224         cell_s_title3.setBorder(Rectangle.NO_BORDER);
225         table_title3.addCell(cell_s_title3);
226 
227         // スタッフ登録店名、スタッフ登録店名がないの場合、空白を表示する
228         String staffTenNam = bean.getStaffTenNam();
229         staffTenNam = setString(staffTenNam);
230         // 新規セル 内容は スタッフ登録店名  
231         paraph_title3 = new Paragraph(staffTenNam, font);
232         cell_s_title3 = new PdfPCell(paraph_title3);
233         cell_s_title3.setColspan(1);
234         setCellLMT(cell_s_title3);
235         cell_s_title3.setBorder(Rectangle.NO_BORDER);
236         table_title3.addCell(cell_s_title3);
237 
238         paraph_title3 = new Paragraph("", font);
239         cell_s_title3 = new PdfPCell(paraph_title3);
240         cell_s_title3.setColspan(1);
241         setCellLMT(cell_s_title3);
242         cell_s_title3.setBorder(Rectangle.NO_BORDER);
243         // テーブルにセルを添加する
244         table_title3.addCell(cell_s_title3);
245 
246         // スタッフCD ,派遣社員名 派遣社員名がないの場合、空白を表示する
247         String staffCd = bean.getStaffCd();
248         staffCd = setString(staffCd);
249         String staffNam = bean.getStaffNam();
250         staffNam = setString(staffNam);
251         // 新規セル 内容は スタッフCD ,派遣社員名
252         paraph_title3 = new Paragraph(staffCd + "  " + staffNam, font);
253         cell_s_title3 = new PdfPCell(paraph_title3);
254         cell_s_title3.setColspan(1);
255         setCellLMT(cell_s_title3);
256         cell_s_title3.setHorizontalAlignment(Element.ALIGN_LEFT);
257         cell_s_title3.setVerticalAlignment(Element.ALIGN_MIDDLE);
258         cell_s_title3.setBorder(Rectangle.NO_BORDER);
259         table_title3.addCell(cell_s_title3);
260         
261         paraph_title3 = new Paragraph("", font);
262         cell_s_title3 = new PdfPCell(paraph_title3);
263         // 合併3列
264         cell_s_title3.setColspan(4);
265         setCellCMT(cell_s_title3);
266         cell_s_title3.setBorder(Rectangle.NO_BORDER);
267         // テーブルにセルを添加する
268         table_title3.addCell(cell_s_title3);
269         
270         // ------------修正 2009-1-19 start -------------
271         paraph_title3 = new Paragraph("", font);
272         cell_s_title3 = new PdfPCell(paraph_title3);
273         // 合併6列
274         cell_s_title3.setColspan(8);
275         cell_s_title3.setBorder(Rectangle.NO_BORDER);
276         table_title3.addCell(cell_s_title3);
277         // ------------修正 2009-1-19 end -------------    
278         // ****************派遣労働者 一行終了****************
279         table.addCell(cell_title3);
280 
281         // ****************スタッフ派遣情報 一行開始****************
282         // 一行
283         Paragraph paraph = new Paragraph("", font);
284         PdfPCell cell = new PdfPCell(paraph);
285         setCellCMT(cell);
286         cell.setBackgroundColor(color_gray);
287         cell_s_title3.setBorder(Rectangle.NO_BORDER);
288         // テーブルにセルを添加する
289         table.addCell(cell);
290 
291         PdfPTable table_s_title = new PdfPTable(widths1);
292         cell = new PdfPCell(table_s_title);
293         // 新規セル 内容は 就業日
294         Paragraph paraphData_title = new Paragraph("就業日", font);
295         PdfPCell cellData_s_title = new PdfPCell(paraphData_title);
296         cellData_s_title.setColspan(1);
297         setCellCMT(cellData_s_title);
298         cellData_s_title.setBackgroundColor(color_gray);
299         // テーブルにセルを添加する
300         table_s_title.addCell(cellData_s_title);
301 
302         PdfPTable table_title_keijo = null;
303         // 新規セル 内容は 開始/終了時刻
304         table_title_keijo = new PdfPTable(widths3);
305         cellData_s_title = new PdfPCell(table_title_keijo);
306         Paragraph paraphData_title_keijo = new Paragraph("開始", font);
307         PdfPCell cellData_s_title_keijo = new PdfPCell(paraphData_title_keijo);
308         // 合併2列
309         cellData_s_title_keijo.setColspan(2);
310         cellData_s_title_keijo.setHorizontalAlignment(Element.ALIGN_CENTER);
311         cellData_s_title_keijo.setVerticalAlignment(Element.ALIGN_BOTTOM);
312         cellData_s_title_keijo.setBackgroundColor(color_gray);
313         cellData_s_title_keijo.setPadding(1);
314         cellData_s_title_keijo.disableBorderSide(Rectangle.BOTTOM);
315         // テーブルにセルを添加する
316         table_title_keijo.addCell(cellData_s_title_keijo);
317 
318         paraphData_title_keijo = new Paragraph("終了時刻", font);
319         cellData_s_title_keijo = new PdfPCell(paraphData_title_keijo);
320         // 合併2列
321         cellData_s_title_keijo.setColspan(2);
322         setCellCMT(cellData_s_title_keijo);
323         cellData_s_title_keijo.setBackgroundColor(color_gray);
324         table_title_keijo.addCell(cellData_s_title_keijo);
325         // テーブルにセルを添加する
326         table_s_title.addCell(cellData_s_title);
327         
328         // 新規セル 内容は 休憩/残業(分)
329         table_title_keijo = new PdfPTable(widths3);
330         cellData_s_title = new PdfPCell(table_title_keijo);
331         paraphData_title_keijo = new Paragraph("休憩/", font);
332         cellData_s_title_keijo = new PdfPCell(paraphData_title_keijo);
333         // 合併2列
334         cellData_s_title_keijo.setColspan(2);
335         cellData_s_title_keijo.setHorizontalAlignment(Element.ALIGN_CENTER);
336         cellData_s_title_keijo.setVerticalAlignment(Element.ALIGN_BOTTOM);
337         cellData_s_title_keijo.setBackgroundColor(color_gray);
338         cellData_s_title_keijo.setPadding(1);
339         cellData_s_title_keijo.disableBorderSide(Rectangle.BOTTOM);
340         // テーブルにセルを添加する
341         table_title_keijo.addCell(cellData_s_title_keijo);
342 
343         paraphData_title_keijo = new Paragraph("残業(分)", font);
344         cellData_s_title_keijo = new PdfPCell(paraphData_title_keijo);
345         // 合併2列
346         cellData_s_title_keijo.setColspan(2);
347         cellData_s_title_keijo.setHorizontalAlignment(Element.ALIGN_CENTER);
348         cellData_s_title_keijo.setVerticalAlignment(Element.ALIGN_MIDDLE);    
349         cellData_s_title_keijo.setPadding(1);
350         cellData_s_title_keijo.disableBorderSide(Rectangle.TOP);
351         cellData_s_title_keijo.setBackgroundColor(color_gray);
352         table_title_keijo.addCell(cellData_s_title_keijo);
353         // テーブルにセルを添加する
354         table_s_title.addCell(cellData_s_title);
355 
356         // 新規セル 内容は 事業所(業務)名称
357         paraphData_title = new Paragraph("事業所(業務)名称", font);
358         cellData_s_title = new PdfPCell(paraphData_title);
359         // 合併2列
360         cellData_s_title.setColspan(2);
361         setCellCMT(cellData_s_title);
362         cellData_s_title.setBackgroundColor(color_gray);
363         // テーブルにセルを添加する
364         table_s_title.addCell(cellData_s_title);
365 
366         // 新規セル 内容は 事業所住所
367         paraphData_title = new Paragraph("事業所住所", font);
368         cellData_s_title = new PdfPCell(paraphData_title);
369         // 合併2列
370         cellData_s_title.setColspan(2);
371         setCellCMT(cellData_s_title);
372         cellData_s_title.setBackgroundColor(color_gray);
373         // テーブルにセルを添加する
374         table_s_title.addCell(cellData_s_title);
375 
376         // 新規セル 内容は 業務内容
377         paraphData_title = new Paragraph("業務内容", font);
378         cellData_s_title = new PdfPCell(paraphData_title);
379         // 合併3列
380         cellData_s_title.setColspan(3);
381         setCellCMT(cellData_s_title);
382         cellData_s_title.setBackgroundColor(color_gray);
383         // テーブルにセルを添加する
384         table_s_title.addCell(cellData_s_title);
385 
386         // 新規セル 内容は 派遣先責任者/連絡先
387         table_title_keijo = new PdfPTable(widths3);
388         cellData_s_title = new PdfPCell(table_title_keijo);
389         paraphData_title_keijo = new Paragraph("派遣先責任者", font);
390         cellData_s_title_keijo = new PdfPCell(paraphData_title_keijo);
391         // 合併2列
392         cellData_s_title_keijo.setColspan(2);
393         cellData_s_title_keijo.setHorizontalAlignment(Element.ALIGN_CENTER);
394         cellData_s_title_keijo.setVerticalAlignment(Element.ALIGN_BOTTOM);
395         cellData_s_title_keijo.setBackgroundColor(color_gray);
396         cellData_s_title_keijo.setPadding(1);
397         cellData_s_title_keijo.disableBorderSide(Rectangle.BOTTOM);
398         // テーブルにセルを添加する
399         table_title_keijo.addCell(cellData_s_title_keijo);
400 
401         paraphData_title_keijo = new Paragraph("連絡先", font);
402         cellData_s_title_keijo = new PdfPCell(paraphData_title_keijo);
403         // 合併2列
404         cellData_s_title_keijo.setColspan(2);
405         setCellCMT(cellData_s_title_keijo);
406         cellData_s_title_keijo.setBackgroundColor(color_gray);
407         table_title_keijo.addCell(cellData_s_title_keijo);
408         // テーブルにセルを添加する
409         table_s_title.addCell(cellData_s_title);
410 
411         // 新規セル 内容は 派遣元責任者/連絡先
412         table_title_keijo = new PdfPTable(widths3);
413         cellData_s_title = new PdfPCell(table_title_keijo);
414         paraphData_title_keijo = new Paragraph("派遣元責任者", font);
415         cellData_s_title_keijo = new PdfPCell(paraphData_title_keijo);
416         // 合併2列
417         cellData_s_title_keijo.setColspan(2);
418         cellData_s_title_keijo.setHorizontalAlignment(Element.ALIGN_CENTER);
419         cellData_s_title_keijo.setVerticalAlignment(Element.ALIGN_BOTTOM);
420         cellData_s_title_keijo.setBackgroundColor(color_gray);
421         cellData_s_title_keijo.setPadding(1);
422         cellData_s_title_keijo.disableBorderSide(Rectangle.BOTTOM);
423         // テーブルにセルを添加する
424         table_title_keijo.addCell(cellData_s_title_keijo);
425 
426         paraphData_title_keijo = new Paragraph("連絡先", font);
427         cellData_s_title_keijo = new PdfPCell(paraphData_title_keijo);
428         // 合併2列
429         cellData_s_title_keijo.setColspan(2);
430         setCellCMT(cellData_s_title_keijo);
431         cellData_s_title_keijo.setBackgroundColor(color_gray);
432         table_title_keijo.addCell(cellData_s_title_keijo);
433         // テーブルにセルを添加する
434         table_s_title.addCell(cellData_s_title);
435 
436         // 新規セル 内容は  健康/保険
437         table_title_keijo = new PdfPTable(widths3);
438         cellData_s_title = new PdfPCell(table_title_keijo);
439         paraphData_title_keijo = new Paragraph("健康", font);
440         cellData_s_title_keijo = new PdfPCell(paraphData_title_keijo);
441         // 合併2列
442         cellData_s_title_keijo.setColspan(2);
443         cellData_s_title_keijo.setHorizontalAlignment(Element.ALIGN_CENTER);
444         cellData_s_title_keijo.setVerticalAlignment(Element.ALIGN_BOTTOM);
445         cellData_s_title_keijo.setBackgroundColor(color_gray);
446         cellData_s_title_keijo.setPadding(1);
447         cellData_s_title_keijo.disableBorderSide(Rectangle.BOTTOM);
448         // テーブルにセルを添加する
449         table_title_keijo.addCell(cellData_s_title_keijo);
450 
451         paraphData_title_keijo = new Paragraph("保険", font);
452         cellData_s_title_keijo = new PdfPCell(paraphData_title_keijo);
453         // 合併2列
454         cellData_s_title_keijo.setColspan(2);
455         setCellCMT(cellData_s_title_keijo);
456         cellData_s_title_keijo.setBackgroundColor(color_gray);
457         table_title_keijo.addCell(cellData_s_title_keijo);
458         // テーブルにセルを添加する
459         table_s_title.addCell(cellData_s_title);
460 
461         // 新規セル 内容は 厚生年/金保険
462         table_title_keijo = new PdfPTable(widths3);
463         cellData_s_title = new PdfPCell(table_title_keijo);
464         paraphData_title_keijo = new Paragraph("厚生年", font);
465         cellData_s_title_keijo = new PdfPCell(paraphData_title_keijo);
466         // 合併2列
467         cellData_s_title_keijo.setColspan(2);
468         cellData_s_title_keijo.setHorizontalAlignment(Element.ALIGN_CENTER);
469         cellData_s_title_keijo.setVerticalAlignment(Element.ALIGN_BOTTOM);
470         cellData_s_title_keijo.setBackgroundColor(color_gray);
471         cellData_s_title_keijo.setPadding(1);
472         cellData_s_title_keijo.disableBorderSide(Rectangle.BOTTOM);
473         // テーブルにセルを添加する
474         table_title_keijo.addCell(cellData_s_title_keijo);
475 
476         paraphData_title_keijo = new Paragraph("金保険", font);
477         cellData_s_title_keijo = new PdfPCell(paraphData_title_keijo);
478         // 合併2列
479         cellData_s_title_keijo.setColspan(2);
480         setCellCMT(cellData_s_title_keijo);
481         cellData_s_title_keijo.setBackgroundColor(color_gray);
482         table_title_keijo.addCell(cellData_s_title_keijo);
483         // テーブルにセルを添加する
484         table_s_title.addCell(cellData_s_title);
485 
486         // 新規セル 内容は 雇用/保険
487         table_title_keijo = new PdfPTable(widths3);
488         cellData_s_title = new PdfPCell(table_title_keijo);
489         paraphData_title_keijo = new Paragraph("雇用", font);
490         cellData_s_title_keijo = new PdfPCell(paraphData_title_keijo);
491         // 合併2列
492         cellData_s_title_keijo.setColspan(2);
493         cellData_s_title_keijo.setHorizontalAlignment(Element.ALIGN_CENTER);
494         cellData_s_title_keijo.setVerticalAlignment(Element.ALIGN_BOTTOM);
495         cellData_s_title_keijo.setBackgroundColor(color_gray);
496         cellData_s_title_keijo.setPadding(1);
497         cellData_s_title_keijo.disableBorderSide(Rectangle.BOTTOM);
498         // テーブルにセルを添加する
499         table_title_keijo.addCell(cellData_s_title_keijo);
500 
501         paraphData_title_keijo = new Paragraph("保険", font);
502         cellData_s_title_keijo = new PdfPCell(paraphData_title_keijo);
503         cellData_s_title_keijo.setColspan(2);
504         setCellCMT(cellData_s_title_keijo);
505         cellData_s_title_keijo.setBackgroundColor(color_gray);
506         table_title_keijo.addCell(cellData_s_title_keijo);
507         table_s_title.addCell(cellData_s_title);
508 
509         // 新規セル 内容は 社会保険手続状況費
510         paraphData_title = new Paragraph("社会保険手続状況費", font);
511         cellData_s_title = new PdfPCell(paraphData_title);
512         cellData_s_title.setColspan(3);
513         setCellCMT(cellData_s_title);
514         cellData_s_title.setBackgroundColor(color_gray);
515         table_s_title.addCell(cellData_s_title);
516         // ****************スタッフ派遣情報 一行終了****************
517         table.addCell(cell);
518         return table;
519     }

ps:此方式比较旧了...

 

  1 private ActionForward FileOutput(ActionMapping mapping, ActionForm form, HttpServletRequest request,
  2             HttpServletResponse response, String ko_cd) throws Exception {
  3         // 年月
  4         String year = (String)request.getParameter("yearNum");
  5         String month = (String)request.getParameter("monthNum");
  6         // 選択したスタッフcd
  7         String resultSelectedStaff = (String)request.getParameter("resultSelectedStaff");
  8         // チェックした派遣社員の配列
  9         List<String> selectedStaffList = new ArrayList<String>();
 10         // 選択した派遣社員をStringからListに変換する処理
 11         String selectedStaff[] = resultSelectedStaff.split(",");
 12         for (String staffCd : selectedStaff) {
 13             selectedStaffList.add(staffCd);
 14         }   
 15         // スタッフCdSql文 格式:'000001','123131'
 16         String staffCdSql = StringUtility.getSqlInStr(selectedStaffList);    
 17         // スタッフデータ
 18         List dataList = new ArrayList();    
 19         // 出力するスタッフデータ
 20         dataList = getData(ko_cd,staffCdSql,year,month);
 21         // ファイル毎ページのタイトルデータリスト
 22         List titleList = getTitleList(dataList);
 23         HakenDaityouVO bean = new HakenDaityouVO();  
 24         // 処理区分
 25         String method = (String) request.getParameter(REQUESTARG_METHOD);
 26         if (METHODNM_PDFOUT.equals(method)) {
 27             // PDF表示処理
 28             // 表示PDFファイルのページの設定
 29             Rectangle rectPageSize = new Rectangle(PageSize.A4);
 30             // 横表示
 31             rectPageSize = rectPageSize.rotate();
 32             Document document = new Document(rectPageSize,10,10,5,5);
 33             ByteArrayOutputStream buffer = new ByteArrayOutputStream();
 34             PdfWriter writer = PdfWriter.getInstance(document,buffer);
 35             // 表示画面で 道具とメニュbars表示しない 
 36             writer.setViewerPreferences(PdfWriter.HideMenubar | PdfWriter.HideToolbar);        
 37             BaseFont bf = BaseFont.createFont("HeiseiKakuGo-W5","UniJIS-UCS2-HW-H",false);    
 38             response.setContentType("application/pdf");
 39             // ファイルをオープンする
 40             document.open();    
 41             float[] widths = {0f,0.165f};
 42             // Pdfファイルの全部ページ数
 43             String pageCnt = String.valueOf(titleList.size());
 44             // 今のうち PdfファイルのページNo
 45             String pageNum = "";
 46             for(int i =0;i<titleList.size();i++){
 47                 // 当前のページNum
 48                 pageNum = String.valueOf(i+1);
 49                 bean = (HakenDaityouVO)titleList.get(i);
 50                 // ヘッダテーブルを取得する
 51                 PdfPTable titletable = new PdfPTable(widths);
 52                 // テーブルの幅
 53                 titletable.setWidthPercentage(100f);
 54                 // 字間距
 55                 titletable.getDefaultCell().setPadding(0);
 56                 // ページのタイトルテーブル生成
 57                 titletable = PdfOutput.writeTitle(bf,titletable,bean,pageNum,pageCnt);
 58                 document.add(titletable);
 59                 // ボディにデータテーブルを取得する
 60                 PdfPTable table = new PdfPTable(widths);
 61                 // テーブルの幅
 62                 table.setWidthPercentage(100f);
 63                 // 字間距
 64                 table.getDefaultCell().setPadding(0);
 65                 // ページのボディデータテーブルテーブル生成
 66                 table = PdfOutput.writeRecord(bf,table,bean,dataList);
 67                 document.add(table);
 68                 // フッターデータテーブルを取得する
 69                 PdfPTable endTable = new PdfPTable(widths);
 70                 // テーブルの幅
 71                 endTable.setWidthPercentage(100f);
 72                 // 字間距
 73                 endTable.getDefaultCell().setPadding(0);
 74                 // フッダテーブル生成
 75                 endTable = PdfOutput.writeEnd(bf,endTable);
 76                 document.add(endTable);
 77                 // 新ページ生成
 78                 document.newPage();    
 79             }
 80             // ここまで data処理を終わります
 81             // ファイルをクローズする
 82             document.close();
 83             // 画面でPDFファイルを表示
 84             DataOutput output = new DataOutputStream(response.getOutputStream());
 85             byte[] bytes = buffer.toByteArray();
 86             response.setContentLength(bytes.length);
 87             for( int i = 0; i < bytes.length; i++ ) { 
 88                 output.writeByte( bytes[i] ); 
 89             }
 90         } else if (METHODNM_EXCELOUT.equals(method)) {
 91             // エクセルでダウンロード処理
 92             // 項目のパス
 93             String path = request.getSession().getServletContext().getRealPath("");
 94             //String path = "/usr/local/apache-tomcat-5.5.26/webapps/wdos";
 95             // 当前のシステム時間
 96             Date currentTime = new Date();
 97             // 時間格式
 98             SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd HHmmssssss");
 99             String dateString = formatter.format(currentTime);
100             // 生成してみるファイルの名
101             String fileNam = "hakenDaityou"+dateString ;
102             //String templeFile = path+"/WEB-INF/src-POO/jp/co/syspro/poo/action/daityoukanri/派遣先管理台帳テンプレート.xls";
103             String templeFile = path+"/WEB-INF/conf/template.xls";
104             String outputPath = path+"/p/business/hakenDaityou";
105 //System.out.println(path + " " + templeFile + " " + outputPath);
106             // excelファイル生成
107             ExcelOutput.excelOutput(templeFile,dataList, titleList, outputPath,fileNam);
108             try{
109                 // 以前生成した lzh圧縮ファイルを削除
110                 deleteFile(outputPath, "lzh", dateString);
111                 // lzh圧縮ファイル生成
112                 getZipFile(outputPath, fileNam + ".xls", outputPath, fileNam+ ".lzh");
113                 // 生成した excelファイルを削除
114                 deleteFile(outputPath, "xls", dateString);
115             }catch(Exception ex){
116                  ex.printStackTrace();
117             }
118             // lzh圧縮ファイル名
119             fileNam = fileNam+".lzh";
120             // lzh圧縮ファイルパス
121             String filepath = outputPath;
122             // ファイル名
123             String myName = fileNam;
124             // response設定とダウンロード保存のファイル名
125             response.reset();
126             response.setContentType("text/html;charset=SHIFT_JIS");
127             response.setContentType("application/x-msdownload");     
128             response.setHeader("Content-Disposition", "attachment; filename=\"" + new String(myName.getBytes("SJIS"),"iso8859-1") + "\"");      
129             // 新規ファイルの輸出流、輸入流
130             OutputStream output = null;
131             FileInputStream fis = null;
132             try{
133               // File
134               File f = new File(filepath + File.separator + fileNam);
135               // ファイルの輸出流
136               output = response.getOutputStream();
137               // ファイルの輸入流
138               fis = new FileInputStream(f);
139               byte[] b = new byte[(int)f.length()];
140               // 画面で表示する
141               int i = 0;
142               while((i = fis.read(b)) > 0){
143                 output.write(b, 0, i);
144               }
145               output.flush();
146             }
147             catch(Exception e){
148               e.printStackTrace();
149             }
150             finally{
151               if(fis != null){
152                 // ファイルの輸入流を閉める
153                 fis.close();
154                 fis = null;
155               }
156               if(output != null){
157                 // ファイルの輸出流を閉める
158                 output.close();
159                 output = null;
160               }
161             }
162         } 
163         return null;
164     }

 

posted on 2015-01-09 11:35  蓝天依旧  阅读(188)  评论(0编辑  收藏  举报