对于我目前的作业,我需要使用Adobe Creative Suit Extension Builder和Flash Builder为Adobe InDesign制作扩展程序。我想这对于了解Extension Builder和InDesign API的人来说更具问题。
此扩展的目的是加载一些数据并将一些数据发送到服务器。我需要制作一个页面的屏幕截图,然后将其以jpg格式发送到服务器。但是,没有(或者至少我找不到)创建位图的方法(将它投射到对象上似乎是不可能的,因为这些对象只是对象,而不是DisplayObjects)。
我设法默默地将页面导出为jpeg,现在我正在考虑加载它们并发送,但这需要构建一个AIR应用程序来处理它,所以这将有点笨重。
总结一下这个问题,如何使用CS Ext.Builder在InDesign中对页面上的所有元素进行屏幕截图?
答案 0 :(得分: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;
}