1

对于我目前的任务,我需要使用 Adob​​e Creative Suit Extension Builder 和 Flash Builder 为 Adob​​e InDesign 进行扩展。我想对于那些了解 Extension Builder 和 InDesign API 的人来说,这更像是一个问题。

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

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

所以总结一下这个问题,如何使用 CS Ext.Builder 在 InDesign 中截取页面上的所有元素?

4

1 回答 1

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;
    }
于 2012-07-06T11:06:44.217 回答