Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SVG中创建Illustrator顶层_Svg_Adobe Illustrator - Fatal编程技术网

在SVG中创建Illustrator顶层

在SVG中创建Illustrator顶层,svg,adobe-illustrator,Svg,Adobe Illustrator,当我将我的分层SVG文件加载到Illustrator中时,所有层都会正常工作,但它们始终位于新层下;我没有指定的“第1层” 我如何创建一个SVG,在Illustrator中我的顶层也作为顶层 在Illustrator中创建一个具有所需组织的文件 将Illustrator中的SVG另存为“a.SVG” 在Illustrator中重新打开SVG文件。 嘿,我所有的层都在第一层下重组了 修复组织 从Illustrator保存SVG,并将“保留Illustrator编辑功能”选项选中为“b.SVG” 在

当我将我的分层SVG文件加载到Illustrator中时,所有层都会正常工作,但它们始终位于新层下;我没有指定的“第1层”

我如何创建一个SVG,在Illustrator中我的顶层也作为顶层

  • 在Illustrator中创建一个具有所需组织的文件
  • 将Illustrator中的SVG另存为“a.SVG”
  • 在Illustrator中重新打开SVG文件。
    嘿,我所有的层都在第一层下重组了
  • 修复组织
  • 从Illustrator保存SVG,并将“保留Illustrator编辑功能”选项选中为“b.SVG”
  • 在Illustrator中重新打开SVG文件。
    耶,这些层被保存了下来
  • Diff
    a.svg
    b.svg
    查看Illustrator正在保存哪些额外的元数据
  • 在您自己的文件中模拟此数据。
    当你意识到解决方案是一个巨大的专有blob(元素
    时,你会哭
  • 放弃,并决定这其实并不重要

  • 这对我来说确实很重要,所以我停止哭泣,花了几个小时编写了这个解决方案:

    • 下载脚本:
    • 将“Fix SVG Layers”文件夹放在标准Illustrator脚本文件夹中。这取决于您的安装和语言,我的地址是:
      C:\Program Files\Adobe\Adobe Illustrator CS6(64位)\Presets\de_de\Skripten
    • 启动Illustrator并加载SVG,其中所有实际层现在都是新“层1”中的组
    • 转到文件->脚本->修复SVG图层->修复SVG图层
    • 耶!所有的组现在都是实际的层,“层1”永远消失了
    更多信息:

    • “FixSvgLayers”将“层1”中的所有组转换回层,将它们移动到文档根目录,并删除现在为空的“层1”
    • “GroupsToLayers”将当前活动层中的所有组转换为层,而不移动或删除任何内容
    • 两个脚本都会提示输入“递归深度”,该深度指定应将多少级别的组转换为子层
    • 第三个脚本(ConvertGroupsIntoLayers)是另外两个脚本所需要的,从菜单调用它会打开一个提示,但不会执行任何操作
    打开SVG时,所有实际层都是新“层1”中的组。这些可以转换回没有歧义。但是,子层是有问题的,因为没有信息来区分实际组和应该是子层的组(如果有,请让我知道!)。作为一种解决方法,我的脚本会提示输入递归深度,并将所有组转换为该深度内的(子)层

    在我的例子中,我有三个层,其中一个层只是多个子层的容器。为了恢复原始层结构,我执行了深度为0的FixsGlayers,然后选择容器层并执行了深度为0的“GroupsToLayers”

    如果这三层都是“容器”,那么执行深度为1的FixsGlayers的层就足以返回正确的结构


    如果不需要任何组,并且每个组都应转换为(子)层,只需输入足够高的数字作为递归深度。

    是否在Illustrator中创建SVG?因为,您可以在文本编辑器中编辑SVG源代码(它只是XML)以改变层。问题是图层在我当前的项目中确实很重要,但我想我必须找到另一种方法。“保留Illustrator…”额外的代码不值得。。非常感谢。