在InDesign Extension Builder中截取页面的屏幕截图

时间:2012-07-05 20:59:44

标签: actionscript-3 flash flash-builder adobe-indesign

对于我目前的作业,我需要使用Adobe Creative Suit Extension Builder和Flash Builder为Adobe InDesign制作扩展程序。我想这对于了解Extension Builder和InDesign API的人来说更具问题。

此扩展的目的是加载一些数据并将一些数据发送到服务器。我需要制作一个页面的屏幕截图,然后将其以jpg格式发送到服务器。但是,没有(或者至少我找不到)创建位图的方法(将它投射到对象上似乎是不可能的,因为这些对象只是对象,而不是DisplayObjects)。

我设法默默地将页面导出为jpeg,现在我正在考虑加载它们并发送,但这需要构建一个AIR应用程序来处理它,所以这将有点笨重。

总结一下这个问题,如何使用CS Ext.Builder在InDesign中对页面上的所有元素进行屏幕截图?

1 个答案:

答案 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;
    }