1 package ecar.servlet.relatorio;
2
3 import java.awt.Color;
4 import java.io.ByteArrayInputStream;
5 import java.io.File;
6 import java.io.FileOutputStream;
7 import java.io.IOException;
8 import java.util.ArrayList;
9 import java.util.Iterator;
10 import java.util.List;
11
12 import javax.servlet.http.HttpServletRequest;
13 import javax.servlet.http.HttpServletResponse;
14 import javax.xml.parsers.*;
15
16 import org.apache.poi.hslf.model.AutoShape ;
17 import org.apache.poi.hslf.model.Picture;
18 import org.apache.poi.hslf.model.ShapeTypes;
19 import org.apache.poi.hslf.model.Slide;
20 import org.apache.poi.hslf.model.TextBox;
21 import org.apache.poi.hslf.usermodel.SlideShow;
22 import org.apache.poi.hslf.usermodel.RichTextRun;
23 import org.w3c.dom.*;
24 import org.xml.sax.InputSource;
25
26 import ecar.dao.ConfiguracaoDao;
27 import ecar.dao.EmpresaDao;
28 import ecar.pojo.ConfiguracaoCfg;
29 import ecar.pojo.EmpresaEmp;
30
31
32 public class MontaPPT {
33
34
35 public void parserXMLPPT(StringBuffer xml, String caminhoImagens, HttpServletRequest request, HttpServletResponse response) throws IOException {
36
37
38
39 InputSource docFile = new InputSource(new ByteArrayInputStream(xml.toString().getBytes()));
40
41
42 Document doc = null;
43 try {
44 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
45 DocumentBuilder db = dbf.newDocumentBuilder();
46 doc = db.parse(docFile);
47 } catch (Exception e) {
48 System.out.print("Problem parsing the file.");
49 }
50
51
52 Element root = doc.getDocumentElement();
53
54
55
56
57 SlideShow ppt;
58 ppt = new SlideShow();
59
60
61 String raizUpload = request.getParameter("raizUpload");
62 String caminho = raizUpload + "/relatorioPpt";
63 String nomeArquivo = "relatorioAcompanhamento.ppt";
64
65 if(!caminho.endsWith("/"))
66 caminho = caminho + "/";
67
68 String caminhoCompleto = caminho + nomeArquivo;
69
70
71 File diretorio = new File(caminho);
72
73 if(!diretorio.isDirectory())
74 diretorio.mkdirs();
75
76 FileOutputStream out = new FileOutputStream(caminhoCompleto);
77
78
79
80
81 String nomeItem = null;
82 String coordenador = null;
83
84
85
86 if (root.getElementsByTagName("semItens").getLength() > 0) {
87 Slide s = ppt.createSlide();
88 adicionaTitulo(request, root, s, ppt, caminhoImagens);
89 TextBox semItens = adicionaTextBox(s, "Nenhum item foi encontrado para os parâmetros deste relatório.",
90 null, 5, 102, 600, 20, 0);
91 formataFonte(semItens, 14, "Arial", true, false, false, Color.blue, TextBox.AlignLeft);
92 adicionaRodape(root, s);
93 ppt.write(out);
94 exibePPT(request, response, out, caminhoCompleto);
95 }
96
97 NodeList itens = root.getElementsByTagName("item");
98
99 ArrayList slides = new ArrayList();
100
101 Slide s1;
102 int quantidadeSlides = 0;
103 int posicaoYQuebraSlide = 548;
104 int incrementoParaOutroParecer = 0;
105 int desceEtapas = 0;
106
107 for (int i = 0; i < itens.getLength(); i++) {
108 Node item = itens.item(i);
109 NodeList filhosItemCorrente = item.getChildNodes();
110 Node nd = null;
111 NamedNodeMap map = item.getAttributes();
112 nd = map.getNamedItem("nomeItem");
113
114
115 if (!nd.getNodeValue().equals("")) {
116 nomeItem = nd.getNodeValue();
117 }
118
119
120
121 Node noOcorrenciaCorrente = null;
122 Node noParecerCorrente = null;
123 ArrayList pareceres = new ArrayList();
124 String nomeNo;
125
126 for (int o = 0; o < filhosItemCorrente.getLength(); o++) {
127 nomeNo = filhosItemCorrente.item(o).getNodeName();
128 if (nomeNo.equals("ocorrencias")) {
129 noOcorrenciaCorrente = filhosItemCorrente.item(o);
130 } else if (nomeNo.equals("parecer")) {
131 noParecerCorrente = filhosItemCorrente.item(o);
132 pareceres.add(noParecerCorrente);
133 desceEtapas++;
134 }
135 }
136
137
138 if (!nd.getNodeValue().equals("")) {
139
140 s1 = null;
141 incrementoParaOutroParecer = 0;
142 slides.add(quantidadeSlides, ppt.createSlide());
143 s1 = (Slide)slides.get(quantidadeSlides);
144 quantidadeSlides++;
145
146 } else {
147 s1 = (ppt.getSlides()[ppt.getSlides().length - 1]);
148 }
149
150
151
152 adicionaTitulo(request, root, s1, ppt, caminhoImagens);
153
154
155
156
157 String orgao = pegarAtributo(doc, "itens", "orgao");
158
159
160 nd = map.getNamedItem("labelRespTecnicoIett");
161 if (!nd.getNodeValue().trim().equals("")) {
162 coordenador = nd.getNodeValue();
163 nd = map.getNamedItem("valorRespTecnicoIett");
164 coordenador += "" + nd.getNodeValue();
165 }
166
167
168 nd = map.getNamedItem("labelDR1");
169 String labelDR1 = nd.getNodeValue() + ":";
170
171
172 nd = map.getNamedItem("valorDR1");
173 String valorDR1 = nd.getNodeValue();
174
175 adicionaOrgao (s1, orgao, nomeItem, coordenador);
176
177 if (valorDR1 != "") {
178
179 TextBox ctLabelDR1 = adicionaTextBox(s1, labelDR1, null, 0, 156, 198, 16, 1);
180 ctLabelDR1.setVerticalAlignment(1);
181 formataFonte(ctLabelDR1, 12, "Arial", true, false, false, Color.black, TextBox.AlignLeft);
182
183
184 TextBox ctValorDR1 = adicionaTextBox(s1, valorDR1, null, 160, 155, 198, 16, 1);
185 ctValorDR1.setVerticalAlignment(1);
186 formataFonte(ctValorDR1, 12, "Arial", false, false, false, Color.black, TextBox.AlignLeft);
187 }
188
189
190
191 Iterator pareceresItem = pareceres.iterator();
192
193 while(pareceresItem.hasNext()) {
194
195 noParecerCorrente = (Node)pareceresItem.next();
196
197
198 if ((174 + incrementoParaOutroParecer) >= posicaoYQuebraSlide) {
199
200 adicionaRodape(root, s1);
201
202 incrementoParaOutroParecer = 0;
203
204
205 s1 = ppt.createSlide();
206 slides.add(quantidadeSlides, s1);
207 quantidadeSlides++;
208
209
210 adicionaTitulo(request, root, s1, ppt, caminhoImagens);
211 adicionaOrgao (s1, orgao, nomeItem, coordenador);
212 }
213
214
215 TextBox ctSituacao = adicionaTextBox(s1, "Situação:", null, 0, 174 + incrementoParaOutroParecer, 99, 17, 1);
216 ctSituacao.setVerticalAlignment (1);
217 formataFonte(ctSituacao, 12, "Arial", true, false, false, Color.black, TextBox.AlignLeft);
218
219
220 String situacao = noParecerCorrente.getAttributes().getNamedItem("situacaoParecer").getNodeValue().toString();
221
222 situacao = situacao.replace("\n", " ");
223
224
225 TextBox ctValorSituacao = adicionaTextBox(s1, situacao, null, 58, 174 + incrementoParaOutroParecer, 99, 17, 1);
226 ctValorSituacao.setVerticalAlignment(1);
227 formataFonte(ctValorSituacao, 12, "Arial", false, false, false, Color.black, TextBox.AlignLeft);
228
229 String pathImagemParecer = "";
230
231 try {
232 pathImagemParecer = noParecerCorrente.getAttributes().getNamedItem("caminhoImagem").getNodeValue().toString();
233 int beginIndex = pathImagemParecer.lastIndexOf("/");
234 pathImagemParecer = caminhoImagens + pathImagemParecer.substring(beginIndex, pathImagemParecer.length());
235 int idImagemParecer = ppt.addPicture(new File(pathImagemParecer), Picture.PNG);
236 Picture imagemParecer = new Picture(idImagemParecer);
237 imagemParecer.setAnchor(new java.awt.Rectangle(12, 190 + incrementoParaOutroParecer, 21,21));
238 s1.addShape(imagemParecer);
239 } catch (Exception e) {
240 System.out.println("Imagem não econtrada:" + pathImagemParecer);
241 }
242
243
244 String labelParecer = noParecerCorrente.getAttributes().getNamedItem("labelParecer").getNodeValue().toString()
245 + noParecerCorrente.getAttributes().getNamedItem("dataUltParecer").getNodeValue().toString() + ":";
246
247
248 TextBox ctLabelParecer = adicionaTextBox(s1, labelParecer, null, 48, 193 + incrementoParaOutroParecer, 330, 16, 1);
249 ctLabelParecer.setVerticalAlignment(1);
250 formataFonte(ctLabelParecer, 12, "Arial", true, false, false, Color.black, TextBox.AlignLeft);
251
252
253 String descricaoParecer = noParecerCorrente.getAttributes().getNamedItem("descricao").getNodeValue().toString();
254
255 descricaoParecer = descricaoParecer.replace("\n", " ");
256
257
258 TextBox ctDescricaoParecer = adicionaTextBox(s1, descricaoParecer, null, 0, 214 + incrementoParaOutroParecer, 390, 36, 1);
259 formataFonte(ctDescricaoParecer, 10, "Arial", false, false, false, Color.black, TextBox.AlignLeft);
260
261
262 TextBox ctLabelObservacoes = adicionaTextBox(s1, "Observações:", null, 0, 235 + incrementoParaOutroParecer, 99, 17, 1);
263 ctLabelObservacoes.setVerticalAlignment (1);
264 formataFonte(ctLabelObservacoes, 12, "Arial", true, false, false, Color.black, TextBox.AlignLeft);
265
266
267 String observacoes = noParecerCorrente.getAttributes().getNamedItem("observacoes").getNodeValue().toString();
268
269 observacoes = observacoes.replace("\n", " ");
270
271
272 TextBox ctObservacoes = adicionaTextBox(s1, observacoes, null, 0, 250 + incrementoParaOutroParecer, 390, 36, 1);
273 ctObservacoes.setVerticalAlignment(0);
274 formataFonte(ctObservacoes, 12, "Arial", false, false, false, Color.black, TextBox.AlignLeft);
275
276 incrementoParaOutroParecer = incrementoParaOutroParecer + 100;
277 }
278
279 //
280
281
282 if (noOcorrenciaCorrente != null) {
283 String labelFuncao = noOcorrenciaCorrente.getAttributes().getNamedItem("labelFuncao").getNodeValue().toString();
284
285
286 TextBox ctLabelFuncao = adicionaTextBox(s1, labelFuncao, null, 397, 156, 198, 16, 1);
287 ctLabelFuncao.setVerticalAlignment(1);
288 formataFonte(ctLabelFuncao, 12, "Arial", true, false, false, Color.black, TextBox.AlignLeft);
289
290
291 TextBox ctCabecalhoFuncao = adicionaTextBox(s1, "Data", Color.LIGHT_GRAY, 396, 173, 70, 14, 1);
292 ctCabecalhoFuncao.setVerticalAlignment (1);
293 formataFonte(ctCabecalhoFuncao, 8, "Arial", true, false, false, Color.black, TextBox.AlignLeft);
294
295 TextBox ctCabecalhoFuncao2 = adicionaTextBox(s1, "Descrição", Color.LIGHT_GRAY, 456, 173, 333, 14, 1);
296 ctCabecalhoFuncao2.setVerticalAlignment(1);
297 formataFonte(ctCabecalhoFuncao2, 8, "Arial", true, false, false, Color.black, TextBox.AlignLeft);
298
299
300
301 NodeList ocorrenciaNodeList = noOcorrenciaCorrente.getChildNodes();
302
303 int posicaoYOcorrencia = 187;
304
305 for (int o = 0; o < ocorrenciaNodeList.getLength(); o++) {
306 Node ocorrenciaNode = ocorrenciaNodeList.item(o);
307
308 NamedNodeMap mapOcorrencia = ocorrenciaNode.getAttributes();
309
310 if (mapOcorrencia != null) {
311 Node ndOcorrenciaData = mapOcorrencia.getNamedItem("data");
312 Node ndOcorrenciaDescricao = mapOcorrencia.getNamedItem("descricao");
313 String dataOcorrencia = ndOcorrenciaData.getNodeValue();
314 String descricaoOcorrencia = ndOcorrenciaDescricao.getNodeValue();
315
316 descricaoOcorrencia = descricaoOcorrencia.replace("\n", " ");
317
318
319 TextBox ctOcorrenciaData = adicionaTextBox(s1, dataOcorrencia, null, 396, posicaoYOcorrencia, 70, 12, 1);
320 ctOcorrenciaData.setVerticalAlignment(1);
321 formataFonte(ctOcorrenciaData, 10, "Arial", false, false, false, Color.BLACK, TextBox.AlignLeft);
322
323
324 TextBox ctOcorrenciaDescricao = adicionaTextBox(s1, descricaoOcorrencia, null, 456, posicaoYOcorrencia, 333, 12, 1);
325 ctOcorrenciaDescricao.setVerticalAlignment(1);
326 formataFonte(ctOcorrenciaDescricao, 10, "Arial", false, false, false, Color.BLACK, TextBox.AlignLeft);
327
328 posicaoYOcorrencia = posicaoYOcorrencia + new Double(ctOcorrenciaData.getAnchor().getHeight()).intValue();
329 }
330 }
331
332
333 posicaoYOcorrencia = 187;
334 }
335
336
337
338
339 int posicaoYEtapas = 320;
340
341
342
343 if (pareceres.size() > 1 && pareceres.size() <= 4) {
344 posicaoYEtapas = posicaoYEtapas + (pareceres.size() * 58);
345 } else if (desceEtapas > 0) {
346 posicaoYEtapas = posicaoYEtapas + (desceEtapas * 58);
347 desceEtapas = 0;
348 }
349
350 int espacoEntreTextBox = 20;
351 Color corColuna = new Color(238,233,233);
352 NodeList etapasNodeList = root.getElementsByTagName("etapas");
353 NodeList etapaNodeList = root.getElementsByTagName("etapa");
354
355 for (int x = 0; (etapaNodeList.getLength() > 0) && (x < etapasNodeList.getLength()); x++) {
356
357 Node etapasNode = etapasNodeList.item(x);
358
359 NamedNodeMap mapEtapas = etapasNode.getAttributes();
360
361 if (mapEtapas != null && (etapasNode.getParentNode().equals(item) )) {
362 Node ndEtapas = mapEtapas.getNamedItem("labelFuncao");
363 String nomeEtapa = ndEtapas.getNodeValue();
364
365
366 if (posicaoYEtapas >= posicaoYQuebraSlide) {
367
368 adicionaRodape(root, s1);
369
370
371 posicaoYEtapas = 174;
372
373
374 s1 = ppt.createSlide();
375 slides.add(quantidadeSlides, s1);
376 quantidadeSlides++;
377
378
379 adicionaTitulo(request, root, s1, ppt, caminhoImagens);
380 adicionaOrgao (s1, orgao, nomeItem, coordenador);
381 }
382
383
384 TextBox ctNomeEtapa = adicionaTextBox(s1, nomeEtapa, null, 3, posicaoYEtapas, 403, 15, 1);
385 ctNomeEtapa.setVerticalAlignment(1);
386 formataFonte(ctNomeEtapa, 12, "Arial", true, false, false, Color.BLACK, TextBox.AlignLeft);
387 posicaoYEtapas = posicaoYEtapas + espacoEntreTextBox;
388
389
390 for (int p = 0; p < etapaNodeList.getLength(); p++) {
391
392 Node etapaNode = etapaNodeList.item(p);
393 NamedNodeMap mapEtapa = etapaNode.getAttributes();
394
395
396
397 if (mapEtapa != null && etapaNode.getParentNode().equals(etapasNode)) {
398
399 Node ndEtapa = mapEtapa.getNamedItem("nomeEtapa");
400 String nomeEtapas = ndEtapa.getNodeValue();
401
402
403 TextBox ctNomeEtapas = adicionaTextBox(s1, nomeEtapas, null, 3, posicaoYEtapas, 403, 15, 1);
404 ctNomeEtapas.setVerticalAlignment(1);
405 formataFonte(ctNomeEtapas, 12, "Arial", true, false, false, Color.BLACK, TextBox.AlignLeft);
406 posicaoYEtapas = posicaoYEtapas + (espacoEntreTextBox - 6);
407
408
409 NodeList etapasColunaNodeList = etapaNode.getChildNodes();
410 String nomeEtapasColuna = "";
411 ArrayList linhasValor = new ArrayList();
412 String valor = "";
413
414 for (int q = 0; q < etapasColunaNodeList.getLength(); q++) {
415
416 Node etapasColunaNode = etapasColunaNodeList.item(q);
417
418 valor = "";
419
420 if (etapasColunaNode.getNodeName().equals("etapasColuna")) {
421 NamedNodeMap mapEtapasColuna = etapasColunaNode.getAttributes();
422 Node ndEtapasColuna = mapEtapasColuna.getNamedItem("label");
423 nomeEtapasColuna = nomeEtapasColuna +
424 ndEtapasColuna.getNodeValue() + "\t ";
425
426 } else if (etapasColunaNode.getNodeName().equals("itemEtapa")) {
427
428 NodeList estapasValorNodeList = etapasColunaNode.getChildNodes();
429
430 for (int s = 0; s < estapasValorNodeList.getLength(); s++) {
431 Node noEtapaValor = estapasValorNodeList.item(s);
432 NamedNodeMap mapEtapaValores = noEtapaValor.getAttributes();
433 if (mapEtapaValores != null){
434 Node ndEtapasValor = mapEtapaValores.getNamedItem("valor");
435 valor = valor + ndEtapasValor.getNodeValue().replace("\n", "") + "\t ";
436 }
437 }
438
439 linhasValor.add(valor);
440 }
441 }
442
443
444 TextBox ctEtapasColuna = adicionaTextBox(s1, nomeEtapasColuna, Color.LIGHT_GRAY, 5, posicaoYEtapas, 783, 15, 1);
445 ctEtapasColuna.setVerticalAlignment(1);
446 formataFonte(ctEtapasColuna, 8, "Arial", true, false, false, Color.BLACK, TextBox.AlignLeft);
447 posicaoYEtapas = posicaoYEtapas + new Double(ctEtapasColuna.getAnchor().getHeight()).intValue();
448
449
450 for (int posi = 0; posi < linhasValor.size(); posi++) {
451
452
453 corColuna = new Color(238,233,233);
454 if (posi % 2 != 0) corColuna = null;
455
456
457 if (posicaoYEtapas >= posicaoYQuebraSlide) {
458
459 adicionaRodape(root, s1);
460
461
462 posicaoYEtapas = 174;
463
464
465 s1 = ppt.createSlide();
466 slides.add(quantidadeSlides, s1);
467 quantidadeSlides++;
468
469
470 adicionaTitulo(request, root, s1, ppt, caminhoImagens);
471 adicionaOrgao (s1, orgao, nomeItem, coordenador);
472 }
473
474 TextBox ctColunasValor = adicionaTextBox(s1, linhasValor.get(posi).toString(), corColuna, 5, posicaoYEtapas, 783, 12, 1);
475 ctColunasValor.setVerticalAlignment(1);
476 formataFonte(ctColunasValor, 9, "Arial", false, false, false, Color.BLACK, TextBox.AlignLeft);
477 posicaoYEtapas = posicaoYEtapas + new Double(ctColunasValor.getAnchor().getHeight()).intValue();
478 valor = "";
479 }
480
481
482
483 posicaoYEtapas = posicaoYEtapas + 5;
484 linhasValor.clear();
485
486 }
487 }
488 }
489
490 }
491
492 adicionaRodape(root, s1);
493 }
494
495 ppt.write(out);
496 exibePPT(request, response, out, caminhoCompleto);
497
498 }
499
500
501 public static void formataFonte(TextBox ct, int tamanho, String nome,
502 boolean ehNegrito, boolean ehItalico,
503 boolean ehSublinhado, Color cor, int alinhamento) {
504
505 RichTextRun rt = ct.getTextRun().getRichTextRuns()[0];
506 rt.setFontSize(tamanho);
507 rt.setFontName(nome);
508 rt.setBold(ehNegrito);
509 rt.setItalic(ehItalico);
510 rt.setUnderlined(ehSublinhado);
511 rt.setFontColor(cor);
512 rt.setAlignment(alinhamento);
513
514 }
515
516
517 public static TextBox adicionaTextBox(Slide s1, String texto, Color cor, int posicaoX,
518 int posicaoY, int largura, int altura, int formato) {
519 TextBox ct = new TextBox();
520 ct.setText(texto);
521 ct.setShapeType(formato);
522 ct.setMarginBottom(0);
523 ct.setMarginTop(0);
524 ct.setAnchor(new java.awt.Rectangle(posicaoX, posicaoY, largura, altura));
525 if (cor != null) ct.setFillColor(cor);
526 s1.addShape(ct);
527
528 return ct;
529 }
530
531
532 public static void adicionaLinha (Slide s, int posicaoX, int posicaoY, int largura,
533 int altura,Color cor) {
534
535 AutoShape sh = new AutoShape(ShapeTypes.Line);
536 sh.setAnchor(new java.awt.Rectangle(posicaoX, posicaoY, largura, altura));
537 sh.setLineColor(cor);
538 s.addShape(sh);
539
540 }
541
542
543 public static String pegarAtributo(Document xml, String noh, String atributo) {
544 String valorAtributo = null;
545
546 Element root = xml.getDocumentElement();
547 valorAtributo = root.getElementsByTagName(noh).item(0).getAttributes().getNamedItem(atributo).getNodeValue();
548
549 return valorAtributo;
550 }
551
552
553 public static void adicionaRodape(Element root, Slide s1) {
554
555
556 String rodape = root.getAttributeNode("rodape").getNodeValue();
557
558
559 TextBox ctRodape = adicionaTextBox(s1, rodape, null, 4, 590, 400, 15, 1);
560 ctRodape.setVerticalAlignment(1);
561 formataFonte(ctRodape, 10, "Arial", false, false, false, Color.BLACK, TextBox.AlignLeft);
562
563 }
564
565
566 public static void adicionaTitulo(HttpServletRequest request, Element root, Slide s1, SlideShow ppt, String caminhoImagens) {
567
568 try {
569
570 ConfiguracaoDao configDao = new ConfiguracaoDao(request);
571 ConfiguracaoCfg config = configDao.getConfiguracao();;
572 String pathRaiz = config.getRaizUpload();
573 EmpresaDao empresaDao = new EmpresaDao(request);
574 List confg = empresaDao.listar(EmpresaEmp.class, null);
575 EmpresaEmp empresa = new EmpresaEmp();
576 if(confg != null && confg.size() > 0){
577 empresa = (EmpresaEmp) confg.iterator().next();
578 }
579
580 try {
581
582
583 int idx = ppt.addPicture(new File(pathRaiz + empresa.getLogotipoRelatorioEmp()), Picture.PNG);
584 Picture pict = new Picture(idx);
585 pict.setAnchor(new java.awt.Rectangle(0, 0, 790,69));
586 s1.addShape(pict);
587 } catch (Exception e) {
588 System.out.println("Imagem não econtrada: "+ pathRaiz + empresa.getLogotipoRelatorioEmp());
589 }
590
591
592 String titulo = "Relatório de Acompanhamento - " + root.getAttribute("mesReferencia");
593
594
595 TextBox ctTitulo = adicionaTextBox(s1, titulo, null, 0, 78, 468, 24, 0);
596 formataFonte(ctTitulo, 14, "Arial", false, false, false, Color.black, TextBox.AlignLeft);
597
598
599 String codModelo = root.getAttribute("codModelo");
600
601
602 TextBox ctModelo = adicionaTextBox(s1, codModelo.toString(), null, 425, 82, 340, 18, 0);
603 formataFonte(ctModelo, 9, "Arial", true, false, false, Color.black, TextBox.AlignRight);
604
605
606 adicionaLinha(s1, 0, 100, 790, 0, Color.LIGHT_GRAY);
607
608 } catch (Exception e) {
609
610 }
611 }
612
613
614 public static void adicionaOrgao (Slide s1, String orgao, String nomeItem, String coordenador) {
615
616 Color corOrgao = new Color(0,0,139);
617
618
619 TextBox ctOrgao = adicionaTextBox(s1, orgao, null, 0, 102, 519, 20, 0);
620 formataFonte(ctOrgao, 12, "Arial", true, false, false, corOrgao, TextBox.AlignLeft);
621
622 TextBox ctItem = adicionaTextBox(s1, nomeItem, Color.LIGHT_GRAY, 5, 122, 390, 30, 1);
623 ctItem.setVerticalAlignment(1);
624 formataFonte(ctItem, 12, "Arial", false, false, false, corOrgao, TextBox.AlignLeft);
625
626
627 TextBox ctCoordenador = adicionaTextBox(s1, coordenador, Color.LIGHT_GRAY, 396, 122, 392, 30, 1);
628 ctCoordenador.setVerticalAlignment(1);
629 formataFonte(ctCoordenador, 8, "Arial", false, false, false, corOrgao, TextBox.AlignLeft);
630
631 }
632
633
634 public static void exibePPT (HttpServletRequest request, HttpServletResponse response,
635 FileOutputStream out, String caminho) {
636
637 try {
638
639 response.setHeader("Content-Disposition","inline");
640 response.setContentType("application/ppt");
641 response.sendRedirect(request.getContextPath() + "/DownloadFile?RemoteFile=" + caminho);
642
643 } catch (Exception e) {
644 System.out.println("Ocorreu um erro na exibição do Powerpoint.");
645 }
646 }
647 }
648
649