flex - Impresión en Adobe AIR-Generación independiente de PDF
printing ria (4)
¿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? He consultado los Informes Flex iniciales en GoogleCode, pero se 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 lograr esto? Sospecho que estoy pasando por alto algo, pero mis búsquedas a través de la documentación no revelan demasiado y me dieron el objetivo para AIR. No puedo creer que sea algo que no incluyeron.
Hay AlivePDF , que es una biblioteca de generación de PDF para ActionScript que debería funcionar, fue creada solo para la situación que describes.
Uno de los otros equipos donde trabajo está trabajando en una aplicación de dibujo basada en Flex y se sorprendieron por completo de que AIR / Flex no tenga incorporada la creación de PDF. Acabaron lanzando su propio creador de PDF simple basado en la especificación PDF.
Acaba de agregar una demo de Adobe Air + Javascript + AlivePDF:
Esta demostración no requiere flexibilidad y es bastante sencilla.
http://www.drybydesign.com/2010/02/26/adobe-air-alivepdf-without-flex/
Sí, es muy fácil crear PDF usando AlivePDF, aquí está el código de muestra, primer método crear un pdf y segundo método guardar el pdf en el disco y regresar la ruta, no dude 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;
}