List of usage examples for com.lowagie.text Document open
boolean open
To view the source code for com.lowagie.text Document open.
Click Source Link
From source file:br.com.moises.servlet.Embarque.java
@Override public void service(HttpServletRequest request, HttpServletResponse response) throws IOException { out.print("Pasou auqe"); try {/* w w w .jav a 2 s . co m*/ Document document = new Document(PageSize.A4, 30, 20, 20, 30); OutputStream outputStream = new FileOutputStream("embarque.pdf"); // response.setContentType("application/pdf"); Long id = Long.parseLong(request.getParameter("num_embarque")); //recupera o embarque embarque = embarqueSuport.getEmbarqueById(id); itens = itSuport.itensEmbarquePorEmbarque(embarque); out.print(itens.size()); PdfWriter.getInstance(document, response.getOutputStream()); document.open(); // Titulo document.addTitle("Comprovante de Coleta"); Paragraph titulo = new Paragraph("Comprovante de Coleta"); // // document.add(titulo); document.add(new Paragraph("\n\n")); PdfPTable topo = new PdfPTable(2); Image image = Image.getInstance("E:\\icons\\32\\cliente.png"); topo.getDefaultCell().setBorder(0); topo.getDefaultCell().addElement(image); topo.addCell(image); topo.addCell("MOISES JUVENAL DA SILVA\n" + "Rua.: Bertioga N 49" + "Jardim Amrica I" + "Vrzea Paulista SP"); document.add(topo); document.add(new Paragraph( "-------------------------------------------------------------------------------------------------------------------")); document.add(new Paragraph( "TRANSP.: " + embarque.getTransportadora().getId() + " - " + embarque.getTransportadora().getNome(), FontFactory.getFont(FontFactory.HELVETICA, 14, Color.BLUE))); document.add(new Paragraph( "-------------------------------------------------------------------------------------------------------------------")); document.add(new Paragraph(new Date().toString())); PdfPTable table = new PdfPTable(2); table.addCell(""); for (ItensEmbarque l : itens) { document.add(new Paragraph(String.valueOf(l.getId()))); } // step 5 document.close(); } catch (DocumentException de) { throw new IOException(de.getMessage()); } }
From source file:br.com.moises.servlet.RelatorioPessoa.java
private void mostrarRelatorio(byte[] arquivo, HttpServletResponse response) { /**//from www . j av a2 s . c o m * A simple Hello World Servlet. * @see HttpServlet#doGet( * HttpServletRequest request, HttpServletResponse response) */ response.setContentType("application/pdf"); try { // step 1 Document document = new Document(); try { // step 2 PdfWriter.getInstance(document, response.getOutputStream()); } catch (IOException ex) { Logger.getLogger(RelatorioPessoa.class.getName()).log(Level.SEVERE, null, ex); } // step 3 document.open(); // step 4 document.add(new Paragraph("Hello World")); document.add(new Paragraph(new Date().toString())); // step 5 document.close(); } catch (DocumentException de) { try { throw new IOException(de.getMessage()); } catch (IOException ex) { Logger.getLogger(RelatorioPessoa.class.getName()).log(Level.SEVERE, null, ex); } } }
From source file:br.com.nfsconsultoria.azcontrole.bean.VendaBean.java
public void preProcessPDF(Object document) throws IOException, BadElementException, DocumentException { Document pdf = (Document) document; pdf.setPageSize(PageSize.A4);/*from ww w.ja va 2 s .co m*/ pdf.addAuthor("Luis Carlos Santos"); pdf.addTitle("Acordo Cadastrados"); pdf.addCreator("NFS Consultoria"); pdf.addSubject("Acordo Cadastrados"); pdf.open(); Font catFont = new Font(Font.TIMES_ROMAN, 18, Font.BOLD); Paragraph p = new Paragraph("Relatrio de Acordos", catFont); p.setAlignment(Element.ALIGN_CENTER); p.setSpacingAfter(20); ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext(); String logo = externalContext.getRealPath("") + File.separator + "resources" + File.separator + "images" + File.separator + "banner.png"; pdf.add(Image.getInstance(logo)); pdf.add(p); }
From source file:br.com.nordestefomento.jrimum.utilix.PDFUtil.java
License:Apache License
/** * <p>/*from ww w. j av a 2 s . c o m*/ * Junta varios arquivos pdf em um soh. * </p> * * @param pdfFiles * Lista de array de bytes * * @return Arquivo PDF em forma de byte * @since 0.2 */ @SuppressWarnings("unchecked") public static byte[] mergeFiles(List<byte[]> pdfFiles) { // retorno byte[] bytes = null; if (isNotNull(pdfFiles) && !pdfFiles.isEmpty()) { int pageOffset = 0; boolean first = true; ArrayList master = null; Document document = null; PdfCopy writer = null; ByteArrayOutputStream byteOS = null; try { byteOS = new ByteArrayOutputStream(); master = new ArrayList(); for (byte[] doc : pdfFiles) { if (isNotNull(doc)) { // cria-se um reader para cada documento PdfReader reader = new PdfReader(doc); if (reader.isEncrypted()) { reader = new PdfReader(doc, "".getBytes()); } reader.consolidateNamedDestinations(); // pega-se o numero total de paginas int n = reader.getNumberOfPages(); List bookmarks = SimpleBookmark.getBookmark(reader); if (isNotNull(bookmarks)) { if (pageOffset != 0) { SimpleBookmark.shiftPageNumbers(bookmarks, pageOffset, null); } master.addAll(bookmarks); } pageOffset += n; if (first) { // passo 1: criar um document-object document = new Document(reader.getPageSizeWithRotation(1)); // passo 2: criar um writer que observa o documento writer = new PdfCopy(document, byteOS); document.addAuthor("JRimum Group"); document.addSubject("JRimum Merged Document"); document.addCreator("JRimum Utilix"); // passo 3: abre-se o documento document.open(); first = false; } // passo 4: adciona-se o conteudo PdfImportedPage page; for (int i = 0; i < n;) { ++i; page = writer.getImportedPage(reader, i); writer.addPage(page); } } } if (master.size() > 0) { writer.setOutlines(master); } // passo 5: fecha-se o documento if (isNotNull(document)) { document.close(); } bytes = byteOS.toByteArray(); } catch (Exception e) { LOG.error("", e); } } return bytes; }
From source file:br.edu.ifrs.restinga.modulorh.controle.SetorController.java
@RequestMapping(value = "/setor/gerarPDF") public String gerar(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, DocumentException { response.setContentType("application/pdf"); try {/* www .j a v a2 s. co m*/ Document document = new Document(); PdfWriter.getInstance(document, response.getOutputStream()); Image image = Image.getInstance("http://www.planalto.gov.br/cciVil_03/decreto/Quadros/anteri1.gif"); image.setAlignment(Image.ALIGN_CENTER); document.open(); document.add(image); document.add(new Paragraph("Ministrio da Educao")); document.add( new Paragraph("Instituto Federal de Educao, Cincia e Tecnologia do Rio Grande do Sul ")); document.add(new Paragraph("Campus Restinga")); document.close(); } catch (DocumentException de) { throw new IOException(de.getMessage()); } return "forward:/setor/gerar"; }
From source file:br.edu.ifrs.restinga.sgru.bean.RelatorioBean.java
/** * Cria um cabealho para o documento PDF * @param document/*from w w w .j a v a 2 s . com*/ */ public void preProcessPDF(Object document) { try { Document pdf = (Document) document; pdf.setPageSize(PageSize.A4); pdf.open(); Paragraph preface = new Paragraph(); // Titulo String titulo; if (this.relatorioCompras) { titulo = "Compras realizadas no perodo de " + this.getDataInicialFormatada() + " a " + this.getDataFinalFormatada(); } else { titulo = "Recargas realizadas no perodo de " + this.getDataInicialFormatada() + " a " + this.getDataFinalFormatada(); } // Titulo centralizado preface.setAlignment(Element.ALIGN_CENTER); // We add one empty line addEmptyLine(preface, 1); // Lets write a big header preface.add(new Paragraph(titulo, CAT_FONT)); addEmptyLine(preface, 1); // O restante serah alinhado a a esquerda preface.setAlignment(Element.ALIGN_LEFT); // Nome de quem requisitou o relatorio SimpleDateFormat fmt = new SimpleDateFormat("dd/MM/yyyy 's' HH'h'mm"); String dataSolicitacao = fmt.format(Calendar.getInstance().getTime()); preface.add(new Paragraph("Relatrio gerado por " + this.controlador.getUsuarioLogado().getNome() + " em " + dataSolicitacao, SMALL_BOLD)); // Forma de pagamento, Tipo de Cliente e Nome do Cliente if (this.controlador.isUsuarioLogadoGerente()) { // Opcao para relatorio de compras apenas if (this.relatorioCompras) { String formaPgto; if (this.controlador.getFormaPgto() == FORMA_PGTO_CARTAO) { formaPgto = "Carto"; } else { formaPgto = "Ticket"; } preface.add(new Paragraph("Forma de Pagamento: " + formaPgto, SMALL_BOLD)); } // Tipo de cliente //String tipoUsuario = this.controlador.getDescricaoCodigoCliente(); String tipoCliente = "Todos"; if (this.controlador.getTipoCliente() != null) { tipoCliente = this.controlador.getTipoCliente().getDescricao(); } // Tipo de usuario e cliente nao serah impresso para ticket if ((this.controlador.getFormaPgto() != FORMA_PGTO_TICKET)) { // Tipo de usuario preface.add(new Paragraph("Tipo de Usurio: " + tipoCliente, SMALL_BOLD)); // Cliente String nomeCliente = "Todos"; if (this.controlador.getCliente() != null) { nomeCliente = this.controlador.getCliente().getNome(); } preface.add(new Paragraph("Nome do Cliente: " + nomeCliente, SMALL_BOLD)); } } addEmptyLine(preface, 1); pdf.add(preface); } catch (DocumentException e) { enviarMensagem(FacesMessage.SEVERITY_ERROR, e.getMessage()); } }
From source file:br.edu.ifrs.restinga.sgru.modelo.ControladorVenda.java
/** * Realiza a venda de um ticket para um cliente * * @param documento/*from w ww. j av a2 s. c om*/ * @throws br.edu.ifrs.restinga.sgru.excessao.TicketInvalidoException */ //public void realizarVendaTicket(Object documento) throws TicketInvalidoException { public void realizarVendaTicket() throws TicketInvalidoException { if (this.quantidade <= 0) { throw new TicketInvalidoException("Venda de Quantidade invalida!"); } Document pdfTicket = new Document(); File temp; try { temp = File.createTempFile("imp_ticket", ".pdf"); PdfWriter.getInstance(pdfTicket, new FileOutputStream(temp)); pdfTicket.open(); pdfTicket.setPageSize(PageSize.A4); Table tabela = new Table(1); tabela.setWidth(100); for (int i = 0; i < this.quantidade; i++) { VendaTicketsRecargas vendaTicketsRecarga = new VendaTicketsRecargas(); vendaTicketsRecarga.setCaixaRU(this.caixaRU); vendaTicketsRecarga.realizarVendaTicket(); Cell celula = new Cell(); celula.setHorizontalAlignment(Element.ALIGN_CENTER); celula.add(new Paragraph("SISTEMA DE GERENCIAMENTO DE RESTAURANTE UNIVERSIT?RIO")); Paragraph parag = new Paragraph(); parag.getFont().setSize(18); parag.add("TICKET"); celula.add(parag); // Gerando o codigo convetido do ticket String conversor = ""; for (char con : String.format("%07d", vendaTicketsRecarga.getTicket().getId()).toCharArray()) { conversor = con + conversor; } parag = new Paragraph(); parag.getFont().setSize(20); parag.add(String.valueOf(Integer.valueOf(conversor, 16))); celula.add(parag); NumberFormat format = NumberFormat.getCurrencyInstance(new Locale("pt", "BR")); format.setMaximumFractionDigits(2); celula.add(new Paragraph("VALOR " + format.format(vendaTicketsRecarga.getTicket().getValor()))); celula.add(new Paragraph(vendaTicketsRecarga.getTicket().getDataCriado().getTime().toString())); celula.add(new Paragraph(" _ ")); tabela.addCell(celula); this.caixaRU.atualizarLstVendaTicketsRecargas(vendaTicketsRecarga); } pdfTicket.add(tabela); } catch (DocumentException | IOException de) { throw new TicketInvalidoException(de.getMessage()); } finally { pdfTicket.close(); } // Abrindo o pdf no pc try { Desktop.getDesktop().open(temp); temp.deleteOnExit(); } catch (IOException ex) { throw new TicketInvalidoException(ex.getMessage()); } }
From source file:br.gov.jfrj.itextpdf.Documento.java
License:Open Source License
public static byte[] stamp(byte[] abPdf, String sigla, boolean rascunho, boolean cancelado, boolean semEfeito, boolean internoProduzido, String qrCode, String mensagem, Integer paginaInicial, Integer paginaFinal, Integer cOmitirNumeracao, String instancia, String orgaoUsu) throws DocumentException, IOException { PdfReader pdfIn = new PdfReader(abPdf); Document doc = new Document(PageSize.A4, 0, 0, 0, 0); // final SimpleDateFormat sdf = new SimpleDateFormat( // "EEE MMM dd HH:mm:ss zzz yyyy"); // doc.add(new Meta("creationdate", sdf.format(new Date(0L)))); final ByteArrayOutputStream boA4 = new ByteArrayOutputStream(); PdfWriter writer = PdfWriter.getInstance(doc, boA4); doc.open(); PdfContentByte cb = writer.getDirectContent(); // Resize every page to A4 size ///*from w w w.j a v a 2 s . c o m*/ // double thetaRotation = 0.0; for (int i = 1; i <= pdfIn.getNumberOfPages(); i++) { int rot = pdfIn.getPageRotation(i); float left = pdfIn.getPageSize(i).getLeft(); float bottom = pdfIn.getPageSize(i).getBottom(); float top = pdfIn.getPageSize(i).getTop(); float right = pdfIn.getPageSize(i).getRight(); PdfImportedPage page = writer.getImportedPage(pdfIn, i); float w = page.getWidth(); float h = page.getHeight(); // Logger.getRootLogger().error("----- dimensoes: " + rot + ", " + w // + ", " + h); doc.setPageSize((rot != 0 && rot != 180) ^ (w > h) ? PageSize.A4.rotate() : PageSize.A4); doc.newPage(); cb.saveState(); if (rot != 0 && rot != 180) { float swap = w; w = h; h = swap; } float pw = doc.getPageSize().getWidth(); float ph = doc.getPageSize().getHeight(); double scale = Math.min(pw / w, ph / h); // do my transformations : cb.transform(AffineTransform.getScaleInstance(scale, scale)); if (!internoProduzido) { cb.transform(AffineTransform.getTranslateInstance(pw * SAFETY_MARGIN, ph * SAFETY_MARGIN)); cb.transform(AffineTransform.getScaleInstance(1.0f - 2 * SAFETY_MARGIN, 1.0f - 2 * SAFETY_MARGIN)); } if (rot != 0) { double theta = -rot * (Math.PI / 180); if (rot == 180) { cb.transform(AffineTransform.getRotateInstance(theta, w / 2, h / 2)); } else { cb.transform(AffineTransform.getRotateInstance(theta, h / 2, w / 2)); } if (rot == 90) { cb.transform(AffineTransform.getTranslateInstance((w - h) / 2, (w - h) / 2)); } else if (rot == 270) { cb.transform(AffineTransform.getTranslateInstance((h - w) / 2, (h - w) / 2)); } } // Logger.getRootLogger().error( // "----- dimensoes: " + rot + ", " + w + ", " + h); // Logger.getRootLogger().error("----- page: " + pw + ", " + ph); // cb.transform(AffineTransform.getTranslateInstance( // ((pw / scale) - w) / 2, ((ph / scale) - h) / 2)); // put the page cb.addTemplate(page, 0, 0); // draw a red rectangle at the page borders // // cb.saveState(); // cb.setColorStroke(Color.red); // cb.rectangle(pdfIn.getPageSize(i).getLeft(), pdfIn.getPageSize(i) // .getBottom(), pdfIn.getPageSize(i).getRight(), pdfIn // .getPageSize(i).getTop()); // cb.stroke(); // cb.restoreState(); cb.restoreState(); } doc.close(); abPdf = boA4.toByteArray(); final ByteArrayOutputStream bo2 = new ByteArrayOutputStream(); final PdfReader reader = new PdfReader(abPdf); final int n = reader.getNumberOfPages(); final PdfStamper stamp = new PdfStamper(reader, bo2); // adding content to each page int i = 0; PdfContentByte under; PdfContentByte over; final BaseFont helv = BaseFont.createFont("Helvetica", BaseFont.WINANSI, false); // Image img = Image.getInstance("watermark.jpg"); final BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.EMBEDDED); byte maskr[] = { (byte) 0xff }; Image mask = Image.getInstance(1, 1, 1, 1, maskr); mask.makeMask(); mask.setInverted(true); while (i < n) { i++; // watermark under the existing page under = stamp.getUnderContent(i); over = stamp.getOverContent(i); final Barcode39 code39 = new Barcode39(); // code39.setCode(doc.getCodigo()); code39.setCode(sigla.replace("-", "").replace("/", "").replace(".", "")); code39.setStartStopText(false); final Image image39 = code39.createImageWithBarcode(over, null, null); Rectangle r = stamp.getReader().getPageSizeWithRotation(i); image39.setInitialRotation((float) Math.PI / 2.0f); image39.setAbsolutePosition( r.getWidth() - image39.getHeight() + (STAMP_BORDER_IN_CM - PAGE_BORDER_IN_CM) * CM_UNIT, BARCODE_HEIGHT_IN_CM * CM_UNIT); image39.setBackgroundColor(Color.green); image39.setBorderColor(Color.RED); image39.setBorderWidth(0.5f * CM_UNIT); image39.setImageMask(mask); over.setRGBColorFill(255, 255, 255); mask.setAbsolutePosition(r.getWidth() - image39.getHeight() - (PAGE_BORDER_IN_CM) * CM_UNIT, (BARCODE_HEIGHT_IN_CM - STAMP_BORDER_IN_CM) * CM_UNIT); mask.scaleAbsolute(image39.getHeight() + 2 * STAMP_BORDER_IN_CM * CM_UNIT, image39.getWidth() + 2 * STAMP_BORDER_IN_CM * CM_UNIT); over.addImage(mask); over.setRGBColorFill(0, 0, 0); over.addImage(image39); // over.addImage(mask, mask.getScaledWidth() * 8, 0, 0, // mask.getScaledHeight() * 8, 100, 450); if (qrCode != null) { java.awt.Image imgQRCode = createQRCodeImage(qrCode); Image imageQRCode = Image.getInstance(imgQRCode, Color.BLACK, true); imageQRCode.scaleAbsolute(QRCODE_SIZE_IN_CM * CM_UNIT, QRCODE_SIZE_IN_CM * CM_UNIT); imageQRCode.setAbsolutePosition(QRCODE_LEFT_MARGIN_IN_CM * CM_UNIT, PAGE_BORDER_IN_CM * CM_UNIT); over.setRGBColorFill(255, 255, 255); mask.setAbsolutePosition((QRCODE_LEFT_MARGIN_IN_CM - STAMP_BORDER_IN_CM) * CM_UNIT, (PAGE_BORDER_IN_CM - STAMP_BORDER_IN_CM) * CM_UNIT); mask.scaleAbsolute((QRCODE_SIZE_IN_CM + 2 * STAMP_BORDER_IN_CM) * CM_UNIT, (QRCODE_SIZE_IN_CM + 2 * STAMP_BORDER_IN_CM) * CM_UNIT); over.addImage(mask); over.setRGBColorFill(0, 0, 0); over.addImage(imageQRCode); } if (mensagem != null) { PdfPTable table = new PdfPTable(1); table.setTotalWidth(r.getWidth() - image39.getHeight() - (QRCODE_LEFT_MARGIN_IN_CM + QRCODE_SIZE_IN_CM + 4 * STAMP_BORDER_IN_CM + PAGE_BORDER_IN_CM) * CM_UNIT); PdfPCell cell = new PdfPCell(new Paragraph(mensagem, FontFactory.getFont(FontFactory.HELVETICA, 8, Font.NORMAL, Color.BLACK))); cell.setBorderWidth(0); table.addCell(cell); over.setRGBColorFill(255, 255, 255); mask.setAbsolutePosition( (QRCODE_LEFT_MARGIN_IN_CM + QRCODE_SIZE_IN_CM + STAMP_BORDER_IN_CM) * CM_UNIT, (PAGE_BORDER_IN_CM - STAMP_BORDER_IN_CM) * CM_UNIT); mask.scaleAbsolute(2 * STAMP_BORDER_IN_CM * CM_UNIT + table.getTotalWidth(), 2 * STAMP_BORDER_IN_CM * CM_UNIT + table.getTotalHeight()); over.addImage(mask); over.setRGBColorFill(0, 0, 0); table.writeSelectedRows(0, -1, (QRCODE_LEFT_MARGIN_IN_CM + QRCODE_SIZE_IN_CM + 2 * STAMP_BORDER_IN_CM) * CM_UNIT, table.getTotalHeight() + PAGE_BORDER_IN_CM * CM_UNIT, over); } if (cancelado) { over.saveState(); final PdfGState gs = new PdfGState(); gs.setFillOpacity(0.5f); over.setGState(gs); over.setColorFill(Color.GRAY); over.beginText(); over.setFontAndSize(helv, 72); over.showTextAligned(Element.ALIGN_CENTER, "CANCELADO", r.getWidth() / 2, r.getHeight() / 2, 45); over.endText(); over.restoreState(); } else if (rascunho) { over.saveState(); final PdfGState gs = new PdfGState(); gs.setFillOpacity(0.5f); over.setGState(gs); over.setColorFill(Color.GRAY); over.beginText(); over.setFontAndSize(helv, 72); over.showTextAligned(Element.ALIGN_CENTER, "MINUTA", r.getWidth() / 2, r.getHeight() / 2, 45); over.endText(); over.restoreState(); } else if (semEfeito) { over.saveState(); final PdfGState gs = new PdfGState(); gs.setFillOpacity(0.5f); over.setGState(gs); over.setColorFill(Color.GRAY); over.beginText(); over.setFontAndSize(helv, 72); over.showTextAligned(Element.ALIGN_CENTER, "SEM EFEITO", r.getWidth() / 2, r.getHeight() / 2, 45); over.endText(); over.restoreState(); } // if (!rascunho // && request.getRequestURL().indexOf("http://laguna/") == -1) { if (!rascunho && !cancelado && !semEfeito && ((!Contexto.resource("isVersionTest").equals("false")) || (!Contexto.resource("isBaseTest").equals("false")))) { over.saveState(); final PdfGState gs = new PdfGState(); gs.setFillOpacity(0.5f); over.setGState(gs); over.setColorFill(Color.GRAY); over.beginText(); over.setFontAndSize(helv, 72); over.showTextAligned(Element.ALIGN_CENTER, "INVLIDO", r.getWidth() / 2, r.getHeight() / 2, 45); over.endText(); over.restoreState(); } // Imprime um circulo com o numero da pagina dentro. if (paginaInicial != null) { String sFl = String.valueOf(paginaInicial + i - 1); // Se for a ultima pagina e o numero nao casar, acrescenta "-" e // pagina final if (n == i) { if (paginaFinal != paginaInicial + n - 1) { sFl = sFl + "-" + String.valueOf(paginaFinal); } } if (i > cOmitirNumeracao) { // Raio do circulo interno final float radius = 18f; // Distancia entre o circulo interno e o externo final float circleInterspace = Math.max(helv.getAscentPoint(instancia, TEXT_HEIGHT), helv.getAscentPoint(orgaoUsu, TEXT_HEIGHT)) - Math.min(helv.getDescentPoint(instancia, TEXT_HEIGHT), helv.getDescentPoint(orgaoUsu, TEXT_HEIGHT)) + 2 * TEXT_TO_CIRCLE_INTERSPACE; // Centro do circulo float xCenter = r.getWidth() - 1.8f * (radius + circleInterspace); float yCenter = r.getHeight() - 1.8f * (radius + circleInterspace); over.saveState(); final PdfGState gs = new PdfGState(); gs.setFillOpacity(1f); over.setGState(gs); over.setColorFill(Color.BLACK); over.saveState(); over.setColorStroke(Color.black); over.setLineWidth(1f); over.setColorFill(Color.WHITE); // Circulo externo over.circle(xCenter, yCenter, radius + circleInterspace); over.fill(); over.circle(xCenter, yCenter, radius + circleInterspace); over.stroke(); // Circulo interno over.circle(xCenter, yCenter, radius); over.stroke(); over.restoreState(); { over.saveState(); over.beginText(); over.setFontAndSize(helv, TEXT_HEIGHT); // Escreve o texto superior do carimbo float fDescent = helv.getDescentPoint(instancia, TEXT_HEIGHT); showTextOnArc(over, instancia, helv, TEXT_HEIGHT, xCenter, yCenter, radius - fDescent + TEXT_TO_CIRCLE_INTERSPACE, true); // Escreve o texto inferior float fAscent = helv.getAscentPoint(orgaoUsu, TEXT_HEIGHT); showTextOnArc(over, orgaoUsu, helv, TEXT_HEIGHT, xCenter, yCenter, radius + fAscent + TEXT_TO_CIRCLE_INTERSPACE, false); over.endText(); over.restoreState(); } over.beginText(); int textHeight = 23; // Diminui o tamanho do font ate que o texto caiba dentro do // circulo interno while (helv.getWidthPoint(sFl, textHeight) > (2 * (radius - TEXT_TO_CIRCLE_INTERSPACE))) textHeight--; float fAscent = helv.getAscentPoint(sFl, textHeight) + helv.getDescentPoint(sFl, textHeight); over.setFontAndSize(helv, textHeight); over.showTextAligned(Element.ALIGN_CENTER, sFl, xCenter, yCenter - 0.5f * fAscent, 0); over.endText(); over.restoreState(); } } } stamp.close(); return bo2.toByteArray(); }
From source file:br.gov.jfrj.itextpdf.Documento.java
License:Open Source License
public static byte[] getDocumento(ExMobil mob, ExMovimentacao mov, boolean completo, boolean estampar, String hash, byte[] certificado) throws Exception { final ByteArrayOutputStream bo2 = new ByteArrayOutputStream(); PdfReader reader;//from w ww. j a va2 s. c o m int n; int pageOffset = 0; ArrayList master = new ArrayList(); int f = 0; Document document = null; PdfCopy writer = null; int nivelInicial = 0; // if (request.getRequestURI().indexOf("/completo/") == -1) { // return getPdf(docvia, mov != null ? mov : docvia.getExDocumento(), // mov != null ? mov.getNumVia() : docvia.getNumVia(), null, // null, request); // } List<ExArquivoNumerado> ans = mob.filtrarArquivosNumerados(mov, completo); if (!completo && !estampar && ans.size() == 1) { if (certificado != null) { CdService cdService = Service.getCdService(); return cdService.produzPacoteAssinavel(certificado, null, ans.get(0).getArquivo().getPdf(), true, ExDao.getInstance().getServerDateTime()); } else if (hash != null) { // Calcula o hash do documento String alg = hash; MessageDigest md = MessageDigest.getInstance(alg); md.update(ans.get(0).getArquivo().getPdf()); return md.digest(); } else { return ans.get(0).getArquivo().getPdf(); } } try { for (ExArquivoNumerado an : ans) { // byte[] ab = getPdf(docvia, an.getArquivo(), an.getNumVia(), // an // .getPaginaInicial(), an.getPaginaFinal(), request); String sigla = mob.getSigla(); if (an.getArquivo() instanceof ExMovimentacao) { ExMovimentacao m = (ExMovimentacao) an.getArquivo(); if (m.getExTipoMovimentacao().getId() == ExTipoMovimentacao.TIPO_MOVIMENTACAO_JUNTADA) sigla = m.getExMobil().getSigla(); } else { sigla = an.getMobil().getSigla(); } byte[] ab = !estampar ? an.getArquivo().getPdf() : stamp(an.getArquivo().getPdf(), sigla, an.getArquivo().isRascunho(), an.getArquivo().isCancelado(), an.getArquivo().isSemEfeito(), an.getArquivo().isInternoProduzido(), an.getArquivo().getQRCode(), an.getArquivo().getMensagem(), an.getPaginaInicial(), an.getPaginaFinal(), an.getOmitirNumeracao(), SigaExProperties.getTextoSuperiorCarimbo(), mob.getExDocumento().getOrgaoUsuario().getDescricao()); // we create a reader for a certain document reader = new PdfReader(ab); reader.consolidateNamedDestinations(); // we retrieve the total number of pages n = reader.getNumberOfPages(); // List bookmarks = SimpleBookmark.getBookmark(reader); // master.add(new Bookmark) // if (bookmarks != null) { // if (pageOffset != 0) // SimpleBookmark.shiftPageNumbers(bookmarks, pageOffset, // null); // master.addAll(bookmarks); // } if (f == 0) { // step 1: creation of a document-object document = new Document(reader.getPageSizeWithRotation(1)); // step 2: we create a writer that listens to the // document writer = new PdfCopy(document, bo2); writer.setFullCompression(); // writer.setViewerPreferences(PdfWriter.PageModeUseOutlines); // step 3: we open the document document.open(); nivelInicial = an.getNivel(); } // PdfOutline root = writer.getDirectContent().getRootOutline(); // PdfContentByte cb = writer.getDirectContent(); // PdfDestination destination = new // PdfDestination(PdfDestination.FITH, position); // step 4: we add content PdfImportedPage page; for (int j = 0; j < n;) { ++j; page = writer.getImportedPage(reader, j); writer.addPage(page); if (j == 1) { // PdfContentByte cb = writer.getDirectContent(); // PdfOutline root = cb.getRootOutline(); // PdfOutline oline1 = new PdfOutline(root, // PdfAction.gotoLocalPage("1", false),"Chapter 1"); HashMap map = new HashMap(); map.put("Title", an.getNome()); map.put("Action", "GoTo"); map.put("Page", j + pageOffset + ""); map.put("Kids", new ArrayList()); ArrayList mapPai = master; for (int i = 0; i < an.getNivel() - nivelInicial; i++) { mapPai = ((ArrayList) ((HashMap) mapPai.get(mapPai.size() - 1)).get("Kids")); } mapPai.add(map); } } PRAcroForm form = reader.getAcroForm(); if (form != null) writer.copyAcroForm(reader); pageOffset += n; f++; } if (!master.isEmpty()) writer.setOutlines(master); // PdfDictionary info = writer.getInfo(); // info.put(PdfName.MODDATE, null); // info.put(PdfName.CREATIONDATE, null); // info.put(PdfName.ID, null); document.close(); } catch (Exception e) { e.printStackTrace(); } return bo2.toByteArray(); }
From source file:br.org.acessobrasil.silvinha.util.GeraRelatorioPDF.java
License:Open Source License
public static boolean geraRelatorio(File file) { TradGeraRelatorioPDF.carregaTexto(TokenLang.LANG); Document document = new Document(PageSize.A4); try {/*ww w . j a v a2s.c o m*/ PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(file)); writer.setPageEvent(new HeaderAndFooter()); document.open(); int linha = 0, j, tot_pg = ResumoDoRelatorio.getTotPage(); //calcula o total de htmls float tot_link = 0.0f; for (j = 1; j <= tot_pg; j++) { String conteudo = ResumoDoRelatorio.getPage(j); String arr[] = conteudo.split("\n"); tot_link += arr.length; } PainelStatusBar.showProgTarReq(); //loop por todas as pginas da paginacao for (j = 1; j <= tot_pg; j++) { String conteudo = ResumoDoRelatorio.getPage(j); String arr[] = conteudo.split("\n"); int tot = arr.length; int i; //loop por todos os links for (i = 0; i < tot; i++) { progresso = (linha++ / tot_link) * 100.0f; PainelStatusBar.setValueProgress((int) progresso); String arr2[] = arr[i].split("\t"); if (arr2.length == 8) { String strUrl = arr2[7];// URL /* int ap1 = Integer.parseInt(arr2[4]);// Aviso1 int ep1 = Integer.parseInt(arr2[1]);// Erro1 int ap2 = Integer.parseInt(arr2[5]);// Aviso2 int ep2 = Integer.parseInt(arr2[2]);// Erro2 int ap3 = Integer.parseInt(arr2[6]);// Aviso3 int ep3 = Integer.parseInt(arr2[3]);// Erro3 */ String myHash = arr2[0]; RelatorioDaUrl relatorio = new RelatorioDaUrl(); relatorio.recarregaArquivoRelatorioEmXml2(myHash); document.add(new Phrase("\n")); Font font = FontFactory.getFont(FontFactory.HELVETICA, Font.DEFAULTSIZE, Font.BOLD); Chunk url = new Chunk(strUrl, font); Paragraph p1 = new Paragraph(TradGeraRelatorioPDF.RELATORIO_URL); p1.add(url); p1.setAlignment(Paragraph.ALIGN_LEFT); document.add(p1); document.add(new Phrase("\n\n")); if (relatorio.getErrosPrioridade1() <= 0 && relatorio.getErrosPrioridade2() <= 0 && relatorio.getErrosPrioridade3() <= 0) { Paragraph p2 = new Paragraph(TradGeraRelatorioPDF.PAGINAS_SEM_ERROS); p2.setAlignment(Paragraph.ALIGN_CENTER); document.add(p2); } else { if (relatorio.getErrosPrioridade1() > 0) { Paragraph p = new Paragraph(TradGeraRelatorioPDF.ERROS_P1, font); p1.setAlignment(Paragraph.ALIGN_LEFT); document.add(p); document.add(new Chunk("\n")); PdfPTable table = geraLista(relatorio.getListaErrosP1()); if (table != null) { document.add(table); } document.add(new Phrase("\n\n")); } if (relatorio.getErrosPrioridade2() > 0) { Paragraph p = new Paragraph(TradGeraRelatorioPDF.ERROS_P2, font); p1.setAlignment(Paragraph.ALIGN_LEFT); document.add(p); document.add(new Chunk("\n")); PdfPTable table = geraLista(relatorio.getListaErrosP2()); if (table != null) { document.add(table); } document.add(new Phrase("\n\n")); } if (relatorio.getErrosPrioridade3() > 0) { Paragraph p = new Paragraph(TradGeraRelatorioPDF.ERROS_P3, font); p1.setAlignment(Paragraph.ALIGN_LEFT); document.add(p); document.add(new Chunk("\n")); PdfPTable table = geraLista(relatorio.getListaErrosP3()); if (table != null) { document.add(table); } document.add(new Phrase("\n\n")); } document.newPage(); } } } } writer.flush(); document.close(); } catch (DocumentException de) { log.error(de.getMessage(), de); PainelStatusBar.hideProgTarReq(); return false; } catch (IOException ioe) { log.error(ioe.getMessage(), ioe); PainelStatusBar.hideProgTarReq(); return false; } PainelStatusBar.hideProgTarReq(); return true; }