Pregunta

¿Es posible generar documentos PDF en una aplicación Adobe AIR sin recurrir a un servicio web de ida y vuelta para generar el PDF?Miré los informes Flex iniciales en GoogleCode, pero requiere un viaje de ida y vuelta para generar el PDF real.

Dado que se supone que AIR es el extremo de escritorio para RIA, ¿hay alguna manera de lograrlo?Sospecho que estoy pasando por alto algo, pero mis búsquedas en la documentación no revelan demasiado y, dado el objetivo de AIR, no puedo creer que sea algo que no incluyeron.

¿Fue útil?

Solución

hay VivoPDF, que es una biblioteca de generación de PDF para ActionScript que debería funcionar, se creó específicamente para la situación que usted describe.

Otros consejos

Acabo de agregar una demostración de Adobe Air + Javascript + AlivePDF:

Esta demostración no Requiere flexibilidad y es bastante sencillo.

http://www.drybydesign.com/2010/02/26/adobe-air-alivepdf- without-flex/

Uno de los otros equipos en los que trabajo está trabajando en una aplicación de dibujo basada en Flex y les sorprendió totalmente que AIR/Flex no tuviera la creación de PDF incorporada.Terminaron desarrollando su propio creador de PDF simple basado en la especificación de PDF.

Sí, es muy fácil crear PDF usando AlivePDF, aquí está el código de muestra, el primer método crea un pdf y el segundo método guarda el pdf en el disco y devuelve la ruta, no dudes en hacer cualquier pregunta.

public function createFlexPdf() : String
{
    pdf = new PDF();
    pdf.setDisplayMode (Display.FULL_WIDTH,Layout.ONE_COLUMN,Mode.FIT_TO_PAGE,0.96);
    pdf.setViewerPreferences(ToolBar.SHOW,MenuBar.HIDE,WindowUI.SHOW,FitWindow.RESIZED,CenterWindow.CENTERED);
    pdf.addPage();
    var myFontStyle:IFont = new CoreFont ( FontFamily.COURIER );
    pdf.setFont(myFontStyle,10);
        pdf.addText('Kamran Aslam',10,20);//String, X-Coord, Y-Coord 
    return savePDF();
}
private function savePDF():String
{
    var fileStream:FileStream = new FileStream();
    var file:File = File.createTempDirectory();
    file = file.resolvePath("temp.pdf");
    fileStream.open(file, FileMode.WRITE);
    var bytes:ByteArray = pdf.save(Method.LOCAL);
    fileStream.writeBytes(bytes);
    fileStream.close();
    return file.url;
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top