martes, 22 de abril de 2008

generar pdf con actionscript usando AlivePDF

En muchos proyectos, siempre surge el "y no puedo imprimirme esto?"... si la aplicación es un entorno web, se suele recurrir entonces a generar un PDF.
Trabajando con Flex y ActionScript, me he topado con AlivePDF, una librería SWC que permite generar este tipo de documentos desde ActionScript. En la web hay un par de video tutoriales muy sencillos y para empezar vienen muy bien.
Aunque en los ejemplos utilizan un PHP para devolver el documento, yo he probado con el servlet de Java que tienen posteado, y también funciona.

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class CreatePDFServlet extends HttpServlet {

public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
doGet(req, resp);
}

public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
int i = 0;
int k = 0;
int maxLength = req.getContentLength();
byte[] bytes = new byte[maxLength];
String method = req.getParameter("method");
String name = req.getParameter("name");
ServletInputStream si = req.getInputStream();
while (true)
{
k = si.read(bytes,i,maxLength);
i += k;
if (k <= 0)
break;
}
if (bytes != null)
{
ServletOutputStream stream = resp.getOutputStream();
resp.setContentType("application/pdf");
resp.setContentLength(bytes.length);
resp.setHeader("Content-Disposition",method + ";filename=" + name);
stream.write(bytes);
stream.flush();
stream.close();
}
else
{
resp.setContentType("text");
resp.getWriter().write("bytes is null");
}
}
}


Se puede hacer de todo con el documento, hasta dibujar, usando el API que proporciona.

AS:
myPDF = new PDF( Orientation.PORTRAIT, Unit.MM, Size.A4 );
myPDF.setDisplayMode( Display.FULL_PAGE, Layout.SINGLE_PAGE );


No hay comentarios:

Movie & TV Show Preview Widget

Springframework.org -

We Heart Code

Eclipse Plugin Central