是否可以在 Adobe AIR 应用程序中生成 PDF 文档,而无需借助往返 Web 服务来生成 PDF?我查看了 GoogleCode 上的初始 Flex 报告,但它需要往返才能生成实际的 PDF。
鉴于 AIR 应该是 RIA 的桌面端,有没有办法做到这一点?我怀疑我忽略了一些东西,但我对文档的搜索并没有透露太多信息,并且考虑到 AIR 的目标,我无法相信这只是他们没有包括的东西。
是否可以在 Adobe AIR 应用程序中生成 PDF 文档,而无需借助往返 Web 服务来生成 PDF?我查看了 GoogleCode 上的初始 Flex 报告,但它需要往返才能生成实际的 PDF。
鉴于 AIR 应该是 RIA 的桌面端,有没有办法做到这一点?我怀疑我忽略了一些东西,但我对文档的搜索并没有透露太多信息,并且考虑到 AIR 的目标,我无法相信这只是他们没有包括的东西。
有AlivePDF,这是一个适用于 ActionScript 的 PDF 生成库,它应该可以工作,它只是针对您描述的情况而制作的。
刚刚添加了一个 Adobe Air + Javascript + AlivePDF 演示:
这个演示不需要flex 并且非常简单。
http://www.drybydesign.com/2010/02/26/adobe-air-alivepdf-without-flex/
我工作的其他团队之一正在开发基于 Flex 的绘图应用程序,他们对 AIR / Flex 没有内置 PDF 创作感到非常惊讶。他们最终基于 PDF 规范推出了自己的简单 PDF 创建器。
是的,使用 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;
}