2012-07-05 67 views
1

对于我目前的任务,我需要做使用的Adobe Creative套装扩展Builder和Flash Builder中的Adobe InDesign中的延伸。我想这对于那些了解Extension Builder和InDesign API的人来说更是一个问题。以页面的截图在InDesign扩展生成器

此扩展的点是加载一些数据和一些数据发送到服务器。我需要制作一个页面的截图,然后以JPG格式发送给服务器。但是,没有(或者至少我找不到任何)创建位图的方法(将其转换为对象似乎是不可能的,因为这些对象只是对象而不是DisplayObject)。

我设法悄悄导出页面为JPEG文件,现在我想加载它们,并发送,但是这将需要建立一个AIR应用程序来处理这一切,所以这将是一个有点笨重。

所以总结起来的问题,如何采取使用CS Ext.Builder在InDesign页面上的所有元素的抓屏?

+0

也许你可以试试,如果这是Adobe Captivate中的一个选项。这是一个屏幕录制程序,因为它是Adobe的,所以它可能有这个扩展。但它在黑暗中虽然有点不足。 – poepje 2012-07-06 07:58:05

回答

1

出口到JPG有什么问题?您可以选择导出页面或对象本身。

这是我在最近的一个项目中编写的代码片段。希望能帮助到你。

public static function getFilePath():String { 

var app:com.adobe.indesign.Application = InDesign.app; 
var sel:* = app.selection, oldResolution:Number, oldColorSpace:JpegColorSpaceEnum, groupItems:Array = [], i:int = 0, n:int = sel.length; 

if (!sel || !n) 
     { 
      Alert.show("Pas de selection !", "title", Alert.OK, Sprite(mx.core.Application.application)); 
      return ""; 
     } 

     for (i = 0 ; i < n ; i ++) 
     { 
      groupItems [ groupItems.length ] = sel[i]; 
     } 
     sel = (sel.length > 1)? app.activeDocument.groups.add (sel) : sel[0] ; 

     var tempFolder:File = File.createTempDirectory(); 
     AppModel.getInstance().jpgFolder = tempFolder; 
     var jpgFile:File = new File(); 
     jpgFile.nativePath = tempFolder.nativePath + "/temp.jpg"; 

     oldResolution = app.jpegExportPreferences.exportResolution; 
     app.jpegExportPreferences.exportResolution = 72; 
     oldColorSpace = app.jpegExportPreferences.jpegColorSpace; 
     app.jpegExportPreferences.jpegColorSpace = JpegColorSpaceEnum.GRAY; 
     sel.exportFile (ExportFormat.jpg, jpgFile); 


     app.jpegExportPreferences.jpegColorSpace = oldColorSpace; 
     app.jpegExportPreferences.exportResolution = oldResolution; 

     if (sel is Group) 
     { 
      sel.ungroup(); 
      app.select (groupItems); 
     } 

     return jpgFile.nativePath; 
    } 
+0

指着我在正确的方向=) – 2012-07-09 22:10:56