2011-07-19 64 views
5

當我將分層的SVG文件加載到Illustrator中時,所有圖層都按照它們應有的方式工作,但它們始終位於新層之下; 「層1」,我沒有指定。在SVG中創建Illustrator頂層

如何創建一個SVG,讓我的頂層最終成爲Illustrator中的頂層?

+0

您是在Illustrator中創建SVG嗎?因爲,您可以在文本編輯器(它只是XML)中編輯SVG源來更改圖層。 – allanberry

回答

6
  1. 在Illustrator中創建一個文件,該文件具有您想要的組織。
  2. 將Illustrator中的SVG另存爲「a.svg」。
  3. 在Illustrator中重新打開SVG文件。
    嘿,我所有的圖層都重新組合在一層!
  4. 修復組織。
  5. 將「Preserve Illustrator編輯功能」選項選爲「b.svg」,從Illustrator中保存SVG。
  6. 在Illustrator中重新打開SVG文件。
    耶,圖層被保留!
  7. Diff a.svgb.svg查看Illustrator正在保存的額外元數據。
  8. 將此數據模仿到您自己的文件中。
    當你意識到解決方案是一個巨大的專有斑點(<i:pgf>元素)時會哭泣。
  9. 放棄並決定它並不重要。
+0

我見過blob代碼,但希望有更好的解決方案。問題是這些圖層在我目前的項目中確實很重要,但我想我必須找到另一種方式。 「Preserve Illustrator ...」額外的代碼是不值得的..謝謝! –

2

它的確確確實實對我很重要,所以我停止了哭泣,花了幾個小時和腳本此解決方案:

  • 下載腳本:https://github.com/JcBernack/IllustratorScripts/archive/master.zip
  • 將「修復SVG圖層」文件夾中標準的Illustrator腳本文件夾。這取決於您的安裝和語言,我的地址是:
    C:\ Program Files \ Adob​​e \ Adob​​e Illustrator CS6(64位)\ Presets \ de_DE \ Skripten
  • 啓動Illustrator並加載SVG,其中所有實際圖層現在是新的「第1層」中的組。
  • 前往文件 - >腳本 - >修復SVG圖層 - > FixSvgLayers
  • Yay!所有的組織現在都是實際的圖層,「第1層」已經消失。更

的位信息:

  • 「FixSvgLayers」轉換所有組中「1層」背面內的層,它們移動到文檔根並刪除現在空的「第1層」。
  • 「GroupsToLayers」將當前活動圖層中的所有組轉換爲圖層,而不移動或刪除任何內容。
  • 這兩個腳本都提示「遞歸深度」,它指定了多少級別的組組應該被轉換爲子子子級。
  • 第三個腳本(ConvertGroupsIntoLayers)只是另外兩個需要的,從菜單調用它會打開一個提示符,但不會執行任何操作。

當打開SVG時,所有的實際圖層都是新的「圖層1」中的組。這些可以轉換回來,沒有歧義。子層是有問題的,因爲沒有信息來區分實際的組和應該是子層的組(如果有的話請告訴我!)。作爲解決方法,我的腳本會提示遞歸深度,並將所有組轉換爲該深度內的(子)層。

在我的情況下,我有三層,其中之一隻是更多子層的容器。爲了取回我執行深度爲0的FixSvgLayers的原始層結構,然後選擇容器層並執行深度爲0的「GroupsToLayers」。

如果所有三層都是「容器」層 - 執行FixSvgLayers深度爲1將足以找回正確的結構。

如果您不希望任何組和每個組都轉換爲(子)層,請輸入足夠高的數作爲遞歸深度。