【问题标题】:SVG Path Bounding Box in ExtendScriptExtendScript 中的 SVG 路径边界框
【发布时间】:2014-08-08 20:09:44
【问题描述】:

在这一点上我真的很难过。我需要获取路径字符串的边界框。我不能使用 RaphaelJS,因为它与浏览器的集成太深,而且 Illustrator 类型库自然不包含任何可以帮助我的东西。

我可以从这里去哪里?我应该只花时间实现自己的算法吗?

【问题讨论】:

  • 我可以在 ExtendScript 中访问它吗?
  • 你能不能做一个小提琴...
  • 什么需要小提琴?我不是在问我的代码有什么问题,我只需要一种计算 Svg 路径边界框的方法。没有什么可摆弄的,因为还没有任何相关的代码。
  • @RashFlash:它不能被摆弄。 Adobe 的“ExtendScript”是一种基于 ECMAScript E4X ECMA-357 的脚本语言(Wikipedia 称其为“方言”和“类似于 Javascript”)。它还需要 Illustrator DOM,而不是 jsFiddle 中当前可用的 HTML DOM 和扩展。

标签: svg adobe-illustrator extendscript


【解决方案1】:

退房:
http://www.jongware.com/idjshelp.html
或:
http://yearbookmachine.github.io/esdocs/#/Illustrator/PageItem

Rect geometricBounds 只读属性
不包括笔画宽度的艺术品的边界。

在对象模型查看器上没有太多关于它的信息。如果它的行为与 InDesign 中的一样,则坐标取决于:

  • 页面来源
  • 使用单位
  • 页面大小

我希望这会有所帮助。您需要打开一个文档并选择一些PageItem。应该适用于您可以在 Illustrator 中放置在页面上的大部分内容。

var main = function(){
    if(app.activeDocument.selection.length > 0){
            var path = app.activeDocument.selection[0];
                    alert(path.geometricBounds);        
                }
        }
    }
main();

【讨论】:

  • “使用的单位”——直到 CS4 [*],Illustrator 坚持始终在脚本中使用点。优点是它只是一个数字(与 InDesign 的“字符串”相反),缺点是您必须自己进行所有单位转换。 [*] 我没有跟上,但我很确定 Adob​​e 没有为更新的版本更改它。
  • 这绝对有帮助。在我的脚本中,我已经导出到 SVG 并试图从那里获得界限。但我可以找到一种方法退后一步,并使用它以另一种方式获取信息。
  • 很有趣,在尝试解决这个问题时,我碰巧在 GitHub 上看到了你的“select_all_textframes_on_page.jsx”,哈哈
  • 是的,它也应该适用于 Illustrator 中的微小更改。这里是参考链接https://gist.github.com/fabiantheblind/6725903
猜你喜欢
  • 1970-01-01
  • 2019-02-04
  • 1970-01-01
  • 2012-09-06
  • 2013-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-22
相关资源
最近更新 更多