2017-09-04 5 views
0

배경 : 회사에서 스타일을 업데이트하고 있으며 기존 문서를 현재 스타일 프로필로 업데이트해야하는 애드온을 만들었습니다.Apps 스크립트를 사용하여 템플릿 이후에 Google 문서 형식 설정

해결 방법 : Google App Script [부가 기능]은 템플릿 문서에서 올바른 양식을 읽고 활성 문서를 업데이트하여 미러링합니다.

발췌문 :이 올바르게

var deltaAttri = [ 
    "BACKGROUND_COLOR", 
    "FOREGROUND_COLOR", 
    "FONT_FAMILY", 
    "FONT_SIZE", 
    "SPACING_AFTER", 
    "SPACING_BEFORE" 
]; 
var baseAttr = heading1.getAttributes(); 
var templateAttri = templateHeading1.getAttributes(); 
for(var d = 0;d<deltaAttri.length;d++){ 
    baseAttr[deltaAttri[d]] = templateAttri [deltaAttri[d]]; 
} 
heading1.setAttributes(baseAttr); 

문제를 작동하지 않습니다 는 거의 모든 내가 가져 오기 속성 (heading1.getAttributes는()) null입니다.

Heading1={ 
    FONT_SIZE=null, 
    SPACING_BEFORE=null, 
    SPACING_AFTER=null, 
    FOREGROUND_COLOR=#073763, 
    FONT_FAMILY=null, 
    BACKGROUND_COLOR=null 
} 

내가 잘못하고있는 것입니까? 아니면이 부분이 App Script를 사용해야할까요?

초기에는 기본값이 설정되지 않았다고 생각했습니다. 그렇다면 기본값에 액세스하거나 변경할 수 있습니까?

+0

내 이해는 스타일이 명시 적으로 설정되지 않은 곳에서는 'null'이 표시되므로 올바른 것입니다. 그렇지 않으면, 나는 당신의 예제에서 작동하지 않을 수도있는 것을 보지 못합니다. 스크립트가 기본 스타일을 예상대로 템플릿 스타일로 변경합니까? –

+0

이것은 객체이므로 {FONT_SIZE : NULL, ... ETC} checkout my answer와 같아야합니다. 나는 이것을 최근 Google Docs에서 봉투 프린터를 만들 때 사용했다. – Cooper

+0

@AntonDementiev Heading1은 위의 전경색 (파란색)을 설정 한 후에 변색됩니다. 기본값은 문서마다 다르며 프로그래밍 방식으로 변경할 수 있는지 여부는 알 수 없습니다. –

답변

0

최근에는 봉투 프린터로 내가 한 일이 있습니다. 이것은 객체를 로딩하는 상당히 표준적인 방법입니다.

function setupDocument() 
{ 
    var doc=DocumentApp.getActiveDocument(); 
    var envelope10={}; 
    envelope10[DocumentApp.Attribute.PAGE_HEIGHT]=296; 
    envelope10[DocumentApp.Attribute.PAGE_WIDTH]=684; 
    envelope10[DocumentApp.Attribute.FONT_FAMILY] = 'Calibri'; 
    envelope10[DocumentApp.Attribute.FONT_SIZE] = 14; 
    envelope10[DocumentApp.Attribute.BOLD] = true; 
    envelope10[DocumentApp.Attribute.LINE_SPACING]=1; 
    doc.getBody().clear().setAttributes(envelope10); 
} 
+0

deltaAttri를 String에서 Enum 특성으로 업데이트합니다. 향상된 코드 품질. –