/** Descripción de Método */ private void cmd_archive() { boolean success = false; ByteArrayOutputStream bytearrayoutputstream = new ByteArrayOutputStream(); org.openXpertya.print.pdf.text.Document document = null; org.openXpertya.print.pdf.text.pdf.PdfWriter writer = null; try { if (m_reportEngine.getLayout().getPageable(false) instanceof LayoutEngine) { LayoutEngine layoutengine = (LayoutEngine) (m_reportEngine.getLayout().getPageable(false)); CPaper cpaper = layoutengine.getPaper(); int i = (int) cpaper.getWidth(true); int j = (int) cpaper.getHeight(true); int k = 0; do { if (k >= layoutengine.getNumberOfPages()) { break; } if (document == null) { // Paso 1: se crea el documento document = new org.openXpertya.print.pdf.text.Document( new org.openXpertya.print.pdf.text.Rectangle(i, j)); // Paso 2: se crea el acceso al documento writer = org.openXpertya.print.pdf.text.pdf.PdfWriter.getInstance( document, bytearrayoutputstream); // Paso 3: se habre el documento document.open(); } if (document != null) { // Paso 4: se completa el contenido y se a�ade al documento // se crea el mapeador de fuentes y se leen todas las fuentes del directorio de fuentes org.openXpertya.print.pdf.text.pdf.DefaultFontMapper mapper = new org.openXpertya.print.pdf.text.pdf.DefaultFontMapper(); org.openXpertya.print.pdf.text.FontFactory.registerDirectories(); mapper.insertDirectory("c:\\windows\\fonts"); // se crea una plantilla y el panel Graphics2D para dibujar en �l org.openXpertya.print.pdf.text.pdf.PdfContentByte cb = writer.getDirectContent(); org.openXpertya.print.pdf.text.pdf.PdfTemplate tp = cb.createTemplate(i, j); java.awt.Graphics2D g2 = tp.createGraphics(i, j, mapper); layoutengine.print(g2, layoutengine.getPageFormat(), k); g2.dispose(); cb.addTemplate(tp, 0, 0); document.newPage(); } k++; } while (true); } // Paso 5: se cierra el documento if (document != null) { document.close(); } bytearrayoutputstream.close(); } catch (Exception exception) { exception.printStackTrace(); } byte[] data = bytearrayoutputstream.toByteArray(); // No Copy if (data != null) { MArchive archive = new MArchive(Env.getCtx(), m_reportEngine.getPrintInfo(), null); archive.setBinaryData(data); success = archive.save(); } if (success) { ADialog.info(m_WindowNo, this, "Archived"); } else { ADialog.error(m_WindowNo, this, "ArchiveError"); } } // cmd_archive