是否可以在Adobe AIR应用程序中生成PDF文档而无需借助往返Web服务来生成PDF?我查看了GoogleCode上的初始Flex报告,但它需要往返才能生成实际的PDF。
鉴于AIR应该是RIA的桌面端,有没有办法实现这一目标?我怀疑我忽略了一些东西,但我对文档的搜索没有透露太多,并且考虑到AIR的目标,我无法相信它只是他们没有包含的内容。
答案 0 :(得分:7)
有AlivePDF,它是适用于ActionScript的PDF生成库,应该可以使用,它只是针对您描述的情况而制作的。
答案 1 :(得分:1)
刚刚添加了Adobe Air + Javascript + AlivePDF演示:
此演示不需要flex并且非常直接。
http://www.drybydesign.com/2010/02/26/adobe-air-alivepdf-without-flex/
答案 2 :(得分:0)
我工作的其他团队之一正在开发基于Flex的绘图应用程序,他们完全惊讶AIR / Flex没有内置的PDF创作。他们最终根据PDF规范推出了自己的简单PDF创建者。
答案 3 :(得分:0)
是的,使用AlivePDF创建PDF非常容易,下面是示例代码,第一种方法创建pdf,第二种方法将pdf保存在磁盘上并返回路径,随时提出任何问题。
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;
}