标签: extendscript

Adobe Illustrator - 尝试适应画板命令时脚本崩溃

activeDocument.fitArtboardToSelectedArt()
Run Code Online (Sandbox Code Playgroud)

调用此命令时,AI 在 AI 5.1/6 32bit 和 64bit 版本上崩溃。我可以使用菜单中的命令。有没有人遇到过这个?有谁知道解决方法?

完整的代码。

    function exportFileToJPEG (dest) {
    if ( app.documents.length > 0 ) {

        activeDocument.selectObjectsOnActiveArtboard()
        activeDocument.fitArtboardToSelectedArt()//crashes here
        activeDocument.rearrangeArtboards()

        var exportOptions = new ExportOptionsJPEG();
        var type = ExportType.JPEG;
        var fileSpec = new File(dest);
        exportOptions.antiAliasing = true;
        exportOptions.qualitySetting = 70;
        app.activeDocument.exportFile( fileSpec, type, exportOptions );
    }
}
var file_name = 'some eps file.eps'
var eps_file = File(file_name)


var fileRef = eps_file;



if (fileRef != null) {
    var optRef = new OpenOptions();
    optRef.updateLegacyText = true;
    var …
Run Code Online (Sandbox Code Playgroud)

extendscript adobe-illustrator

2
推荐指数
1
解决办法
1337
查看次数

使用extendscript返回文件夹路径

使用extendscript,谁能告诉我如何打开一个对话框,单击一个文件夹以突出显示它,然后确定该对话框并将该文件夹的路径作为字符串返回。

非常感谢鲍勃

javascript adobe extendscript adobe-illustrator

2
推荐指数
1
解决办法
3984
查看次数

如何使用 JavaScript 选择和删除 Illustrator 文档中的每个剪贴蒙版?

我正在为 Adob​​e Illustrator CS6 (javascript) 制作扩展脚本,我需要删除文档的每个剪贴蒙版。

我已经有了一个解决方案,但在大文档中它不够快。

这是我的代码:

var releaseClippingMasks = function(document)  {
  var pathItems = document.pathItems;
  log('Looking for clipping masks among ' + pathItems.length + ' elements');
  var n = 0;
  for(var p = pathItems.length - 1; p >= 0; p--) {
    if(p / 1000 == Math.round(p / 1000)) {
        log(p + ' remaining');
    }

    if(pathItems[p].clipping) { // accessing to the element [p] of pathItems takes a lot of time
        pathItems[p].remove();
        n++;
    }
  }
  log(n + ' deleted masks'); …
Run Code Online (Sandbox Code Playgroud)

javascript optimization extendscript adobe-illustrator

2
推荐指数
1
解决办法
2091
查看次数

如何从命令行执行 InDesign 扩展脚本?

我需要从命令行 (Windows) 为 InDesign 执行 .jsx 脚本。

对于 Illustrator,它可以使用以下命令轻松工作:

"C:\Program Files\Adobe\Adobe Illustrator CS6 (64 Bit)\Support Files\Contents\Windows\Illustrator.exe" "...\myscript.jsx"
Run Code Online (Sandbox Code Playgroud)

应用程序 Illustrator 和 ExtendScript Toolkit CS6 都会打开,然后脚本会自动启动。

当我为 InDesign 尝试相同的方法时,它不起作用(InDesign 显示“无法打开 myscript.jsx ...”)。

我还尝试从命令行启动 ExtendScript Toolkit,如下所示:

"C:\Program Files (x86)\Adobe\Adobe Utilities - CS6\ExtendScript Toolkit CS6\ExtendScript Toolkit.exe" "...\myscript.jsx"
Run Code Online (Sandbox Code Playgroud)

结果是 ExtendScript Toolkit 应用程序在加载脚本的情况下打开,但没有执行任何操作。

有谁知道如何启动脚本?是否有要添加的-run-cmd参数?

command-line extendscript adobe-indesign

2
推荐指数
1
解决办法
6968
查看次数

如何将对象从 Javascript (Adobe CEP) 传递给 Adob​​e ExtendScript?

我正在使用Adobe CEP(它允许开发人员为 Adob​​e CC 产品创建窗口扩展)。我的大部分代码是现代 JavaScript(该平台使用 Chromium 57、Node.js 7.7.4)。 但是,为了访问 DOM,我需要在 Adob​​e ExtendScript 中编写一些函数并从普通 JS 中执行它们。唯一的方法是使用他们提供的csInterface.evalScript(script, callback). script必须是一个字符串,在我的例子中是一个转换为字符串的函数调用。我希望能够通过 将对象传入和传出 ExtendScriptevalScript,但evalScript只接受和返回一个字符串。

目前,我将每个对象属性作为它自己的参数传递。这很笨拙,但它有效。

我的第一个虽然是JSON.stringify(),但不幸的是 ExtendScript 是 ECMAScript 3 的方言,这意味着JSON.parse()支持.

我不能只是将对象参数连接到脚本函数调用中,因为这样字符串的计算结果为foo([object Object]).

我见过像eval()/uneval()或这样的函数Object.toSource(),但 Chromium 不支持这些函数。

这是一个示例,类似于我当前的方法:

函数.js (ES3/ExtendScript)

function drawCircle(x, y, name) {
    // pick a layer
    var layer = app.activeDocument.layers[0];

    var diameter = 10;
    var …
Run Code Online (Sandbox Code Playgroud)

javascript extendscript ecmascript-3

2
推荐指数
1
解决办法
1877
查看次数

用于水平翻转的 Illustrator 脚本

萨尔维特!我到处搜索,但不知道如何使用 Extendscript (jsx) 水平翻转单个选定的对象。

有人可以帮忙吗?当然,这并不是一件困难的事!

javascript transform extendscript adobe-illustrator

1
推荐指数
1
解决办法
3125
查看次数

使用 Extendscript 在 InDesign 中放置文件时指定编码

我有一个脚本,可将 Markdown 文件放入 InDesign 中的文本框架中。不幸的是,InDesign 似乎没有接受 UTF-8 编码,因为引号和其他内容最终都以\xe2\x80\x9a\xc3\x84\xc3\xba.

\n\n

我尝试根据这个问题file.encoding进行设置,但均无济于事。这是相关的代码:"UTF-8"

\n\n
var file = File.openDialog ("Select content markdown" , "Markdown:*.md", false );\nfile.encoding = "UTF-8";\nmyFirstTextframe.place(file);\n
Run Code Online (Sandbox Code Playgroud)\n\n

我该如何解决这个问题?

\n

javascript extendscript utf-8 character-encoding adobe-indesign

1
推荐指数
1
解决办法
2139
查看次数

来自python脚本的extendscript返回参数

我正在处理一个需要在服务器上迭代数万个文件名的扩展脚本代码(Adobe After Effects - 但它基本上只是 javascript)。这在扩展脚本中非常慢,但我可以在几秒钟内使用 python 完成我需要的操作,无论如何,python 是我的首选语言。所以我想运行一个python文件并将一个数组返回给extendscript。我可以通过创建和执行批处理文件来运行我的 python 文件并传递一个参数(根文件夹),但是如何将结果(一个数组)传递回扩展脚本?我想我可以写出一个 .csv 并将其读回来,但这似乎有点“hacky”。

python extendscript batch-file

1
推荐指数
1
解决办法
548
查看次数

如何使用默认 shell 查找 OSX 上的所有可用字体

我正在尝试使用extendscript(一种专有的ECMAScript方言,但主要是\xe2\x89\x88 javascript)为Adobe After Effects编写脚本。我可以使用内置命令 system.callSystem()来使用默认(?) shell 执行命令,但我找不到 bash oneliner,或者我可以用来列出可用字体的 AppleScript 命令。

\n\n

有没有办法在 OSX 命令行上获取所有字体?

\n

macos bash fonts applescript extendscript

1
推荐指数
1
解决办法
3432
查看次数

当文档设置为 InDesign 中的“对页”时,形状不会绘制在正常页面上 (CEP/JavaScript)

我正在创建一个 InDesign 插件,其中功能之一是在给定页面上绘制形状。

我从后端获取一张绘图,其中包含应绘制该绘图的页码。

为此,我这样做: app.activeDocument.pages[index]获得我想要的页面。

不幸的是,我意识到这种技术仅在页面不彼此面对时才有效,如下所示:

在此输入图像描述

当页面像这样面对面时:

在此输入图像描述

,第 3 页上的形状将绘制在第 2 页上,而不是第 3 页上。

这里,图纸位于右页:

在此输入图像描述

但在这里,矩形不在正确的页面上:

在此输入图像描述

我还尝试通过执行以原始方式绘制形状app.activeDocument.spreads[indexSpread].pages[1],这应该在逻辑上将注释写在相关板的第二页上,但它始终绘制在板的第一页上。

这是我绘制矩形的代码:

var doc = app.activeDocument;
var page = doc.pages[pageIndex-1];
var myRectangle = page.rectangles.add();
Run Code Online (Sandbox Code Playgroud)

javascript extendscript draw adobe-indesign adobe-extension

1
推荐指数
1
解决办法
89
查看次数