JavaScript를 사용하여 Illustrator에서 심볼 라이브러리를로드하는 방법은 무엇입니까?

Superrache

코드로 참조 Illustrator 파일에서 다른 파일로 심볼 라이브러리를로드하려고합니다. UI에서 '기타 라이브러리'를 클릭 할 때와 동일한로드를하고 싶습니다. 그러면 모든 심볼을 가져 오기 위해 Ai 파일을 선택해야합니다.

여기에 이미지 설명 입력

누구든지 그것을하는 방법을 알고 있습니까? 쉬운 방법이 있습니까, 아니면 기호를 하나씩 복사해야합니까?

다른 문서를로드 한 다음 각 기호를 첫 번째 문서에 복사하려고했습니다.

var loadSymbolLibrary = function(fromAiFile) {
    var thisDocument = activeDocument;
    app.open(fromAiFile);
    var fromAiDocument = activeDocument;

    var symbols = fromAiDocument.symbols;
    for(var i = 0; i < symbols.length; i++) {
        var symbol = symbols[i];
        thisDocument.symbols.add(symbol);
    }

    fromAiDocument.close();
    activeDocument = thisDocument;
}

그러나 첫 번째 문서에 기호를 추가 할 때 오류가 발생합니다. Adobe 문서에 따르면 함수 로 심볼을 만들려면 PageItem및 a SymbolRegistrationPoint필요 add()합니다.

[편집하다]

I also tried to load the document containing symbols in this way:

    var openOptions = new OpenOptions();
openOptions.openAs = LibraryType.SYMBOLS;
var symbolDocument = app.open(symbolAiFile, null, openOptions);

This opens a symbol window in Illustrator, but I don't know how to deal with it by code as calling symbolDocument.symbols produce a 'The document is no longer open' error.

jtnimoy

First off, it will be useful to know for clarity that a SymbolItem is a placed instance of a Symbol and a Document has both of those.

Illustrator will not allow a call to Document.symbolItems.add() if the symbol being passed is not in that document's symbols list. Personally, I consider that a bug. Here is a wrapper class that opens the symbol library as a new document (note the exclusion of relevant openAs property), places the symbol into that document, then copies the symbol item to the other document.

#target illustrator-18


//class
function SymbolLibrary(){

    this.symbolsDoc = null;
    this.len = 0;

    this.begin = function(symbolFileName){
        var file1 = File(symbolFileName);
        //open the symbol library
        var optRef = new OpenOptions();
        //optRef.openAs = LibraryType.SYMBOLS; //broken. just open as regular doc
        this.symbolsDoc = app.open( file1 , null , optRef);
        this.len = this.symbolsDoc.symbols.length;
        return this.symbolsDoc;
    }

    this.list = function(){
        for(var i=0;i<symbolsDoc.symbols.length;i++){
            $.writeln( symbolsDoc.symbols[i] );
        }
        return symbolsDoc.symbols;
    }

    this.place = function(targetDoc,index){
        var symbolItem = this.symbolsDoc.symbolItems.add(this.symbolsDoc.symbols[index]);
        finalItem = symbolItem.duplicate( targetDoc,ElementPlacement.PLACEATEND );
        symbolItem.remove();
        return finalItem;
    }

    this.end = function(){
    this.symbolsDoc.close(SaveOptions.DONOTSAVECHANGES);
    }
}

var filename =  "/Applications/Adobe\ Illustrator\ CC\ 2014/"+
    "Presets.localized/en_US/Symbols/Nature.ai";


//create new document
var mydoc = app.documents.addDocument('',new DocumentPreset());

//instantiate the symbol library handler class
var lib1 = new SymbolLibrary();

lib1.begin(filename);
for(var i=0;i<lib1.len;i++){
    lib1.place(mydoc,i).position = [((i%10)*100),i*10];
}
lib1.end();

$.writeln('#########');

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Github 페이지에서 로컬 JavaScript 라이브러리를로드하는 방법은 무엇입니까?

분류에서Dev

cmake를 사용하여 내 코드에 라이브러리를 포함하는 방법은 무엇입니까?

분류에서Dev

less에서 심볼을 var로 사용하는 방법은 무엇입니까?

분류에서Dev

외부 축 방법을 사용하여 mplfinance 라이브러리를 사용하여 여러 캔들 차트를 그릴 때 캔들 차트 내부에 볼륨을 플로팅하는 방법은 무엇입니까?

분류에서Dev

Perl을 사용하여 폴더의 파일 사이에 심볼릭 링크를 만드는 방법은 무엇입니까?

분류에서Dev

여러 하드 드라이브를 하나의 볼륨으로 설정하는 방법은 무엇입니까?

분류에서Dev

여러 하드 드라이브를 하나의 볼륨으로 설정하는 방법은 무엇입니까?

분류에서Dev

std 라이브러리에서 잘못된 오버로드를 방지하는 방법은 무엇입니까?

분류에서Dev

Codeigniter 라이브러리를 사용하여 Excel Sheet 데이터를 Mysql 테이블에 업로드하는 방법은 무엇입니까?

분류에서Dev

라이브러리 Angular에서 서비스를 글로벌하게 만드는 방법은 무엇입니까?

분류에서Dev

Fedora의 디렉토리에서 심볼릭 링크를 제거하는 방법은 무엇입니까?

분류에서Dev

Android에서 zxing 라이브러리를 사용하여 카메라 미리보기에서 바코드를 디코딩하는 방법은 무엇입니까?

분류에서Dev

R에서 Apache POI 라이브러리를로드하는 방법은 무엇입니까?

분류에서Dev

다운로드 한 Python 라이브러리를 Windows에서 작동하는 방법은 무엇입니까?

분류에서Dev

iPhone 사진 라이브러리에 비디오를 다운로드하는 방법은 무엇입니까?

분류에서Dev

코드 네임 1에서 라이브러리를 사용하는 방법은 무엇입니까?

분류에서Dev

시작 매개 변수를 사용하여 / usr / bin / vim에 대한 심볼릭 링크를 만드는 방법은 무엇입니까?

분류에서Dev

Google Reflections 라이브러리를 사용하여 런타임에로드되는 JAR을 스캔하는 방법은 무엇입니까?

분류에서Dev

C ++ 프로젝트에서 Swift 정적 라이브러리 (.a)를 사용하는 방법은 무엇입니까?

분류에서Dev

CakePHP에서 외부 라이브러리를 뷰 도우미로 사용하는 방법은 무엇입니까?

분류에서Dev

CakePHP에서 외부 라이브러리를 뷰 도우미로 사용하는 방법은 무엇입니까?

분류에서Dev

로드 경로에 공급 업체 라이브러리를 포함하는 방법은 무엇입니까?

분류에서Dev

외부 라이브러리에서 WPF를 사용하여 동적으로 변경 가능한 스타일을 만드는 방법은 무엇입니까?

분류에서Dev

JProfiler : 에이전트 라이브러리를로드하는 방법은 무엇입니까?

분류에서Dev

Shiny에서 Javascript를 사용하여 볼륨을 변경하는 방법은 무엇입니까?

분류에서Dev

CMake : CMakeLists.txt 내에서 여러 라이브러리를 빌드하는 방법은 무엇입니까?

분류에서Dev

존재하지 않는 폴더에 대한 심볼릭 링크를 만드는 방법은 무엇입니까?

분류에서Dev

디렉토리에 대한 심볼릭 링크를 제거하는 방법은 무엇입니까?

분류에서Dev

OS X에서 심볼릭 링크를 변경하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    Github 페이지에서 로컬 JavaScript 라이브러리를로드하는 방법은 무엇입니까?

  2. 2

    cmake를 사용하여 내 코드에 라이브러리를 포함하는 방법은 무엇입니까?

  3. 3

    less에서 심볼을 var로 사용하는 방법은 무엇입니까?

  4. 4

    외부 축 방법을 사용하여 mplfinance 라이브러리를 사용하여 여러 캔들 차트를 그릴 때 캔들 차트 내부에 볼륨을 플로팅하는 방법은 무엇입니까?

  5. 5

    Perl을 사용하여 폴더의 파일 사이에 심볼릭 링크를 만드는 방법은 무엇입니까?

  6. 6

    여러 하드 드라이브를 하나의 볼륨으로 설정하는 방법은 무엇입니까?

  7. 7

    여러 하드 드라이브를 하나의 볼륨으로 설정하는 방법은 무엇입니까?

  8. 8

    std 라이브러리에서 잘못된 오버로드를 방지하는 방법은 무엇입니까?

  9. 9

    Codeigniter 라이브러리를 사용하여 Excel Sheet 데이터를 Mysql 테이블에 업로드하는 방법은 무엇입니까?

  10. 10

    라이브러리 Angular에서 서비스를 글로벌하게 만드는 방법은 무엇입니까?

  11. 11

    Fedora의 디렉토리에서 심볼릭 링크를 제거하는 방법은 무엇입니까?

  12. 12

    Android에서 zxing 라이브러리를 사용하여 카메라 미리보기에서 바코드를 디코딩하는 방법은 무엇입니까?

  13. 13

    R에서 Apache POI 라이브러리를로드하는 방법은 무엇입니까?

  14. 14

    다운로드 한 Python 라이브러리를 Windows에서 작동하는 방법은 무엇입니까?

  15. 15

    iPhone 사진 라이브러리에 비디오를 다운로드하는 방법은 무엇입니까?

  16. 16

    코드 네임 1에서 라이브러리를 사용하는 방법은 무엇입니까?

  17. 17

    시작 매개 변수를 사용하여 / usr / bin / vim에 대한 심볼릭 링크를 만드는 방법은 무엇입니까?

  18. 18

    Google Reflections 라이브러리를 사용하여 런타임에로드되는 JAR을 스캔하는 방법은 무엇입니까?

  19. 19

    C ++ 프로젝트에서 Swift 정적 라이브러리 (.a)를 사용하는 방법은 무엇입니까?

  20. 20

    CakePHP에서 외부 라이브러리를 뷰 도우미로 사용하는 방법은 무엇입니까?

  21. 21

    CakePHP에서 외부 라이브러리를 뷰 도우미로 사용하는 방법은 무엇입니까?

  22. 22

    로드 경로에 공급 업체 라이브러리를 포함하는 방법은 무엇입니까?

  23. 23

    외부 라이브러리에서 WPF를 사용하여 동적으로 변경 가능한 스타일을 만드는 방법은 무엇입니까?

  24. 24

    JProfiler : 에이전트 라이브러리를로드하는 방법은 무엇입니까?

  25. 25

    Shiny에서 Javascript를 사용하여 볼륨을 변경하는 방법은 무엇입니까?

  26. 26

    CMake : CMakeLists.txt 내에서 여러 라이브러리를 빌드하는 방법은 무엇입니까?

  27. 27

    존재하지 않는 폴더에 대한 심볼릭 링크를 만드는 방법은 무엇입니까?

  28. 28

    디렉토리에 대한 심볼릭 링크를 제거하는 방법은 무엇입니까?

  29. 29

    OS X에서 심볼릭 링크를 변경하는 방법은 무엇입니까?

뜨겁다태그

보관