2017-09-04 13 views
0

背景: 会社はスタイルを更新しています。私は既存のドキュメントを現在のスタイルプロファイルに更新するアドオンを作成しました。Appsスクリプトを使用してテンプレートの後にGoogleドキュメントをフォーマットする

ソリューション: Google App Script [add-on]は、テンプレートドキュメントから正しい書式を読み取り、アクティブドキュメントを更新してそれをミラーリングします。

スニペット:私は(heading1.getAttributes())フェッチ ほぼすべての属性はnullです:これは正しく

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={ 
    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のように見えるはずです。私は最近これを使ってGoogle Docsに封筒のプリンタを作りました。 – Cooper

+0

@AntonDementiev Heading1は、上記のforeground-color(青色)を設定した後に変色したままです。 デフォルトはドキュメントによって異なり、プログラムで変更できるかどうかはわかりません。 –

答えて

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属性に更新します。改善されたコード品質のみです。 –

関連する問題