2017-05-13 11 views
0

見出しを削除するが、現在の段落のフォントとサイズを保持する関数を作成しようとしています。デフォルトスタイルの段落のフォントファミリとサイズを取得するにはどうすればよいですか?

しかし、フォントファミリ/サイズの値は、適用された見出しによって設定されたデフォルトフォントを持つ段落からは検索できないようです。

var cursor = DocumentApp.getActiveDocument().getCursor(); if (!cursor) return; 
var ctext = cursor.getSurroundingText(); 
var para = ctext.asParagraph(); 
para.setHeading(DocumentApp.ParagraphHeading.HEADING1); // sets Arial 20 
var text = ctext.asText(); 
var ff = text.getFontFamily(); 
var fs = text.getFontSize(); 
DocumentApp.getUi().alert(ff+" "+fs); // NULL NULL 

私は彼らにこの方法を取得するには、ヘッダーの[フォントとサイズにアクセスしようとしたが、GoogleのAppスクリプトは、これらのどこを公開していないようです。

答えて

0

これは今行うことができないという確認の詳細は、私はAttributesオブジェクトを見て、同じ結果で直接アクセスしました。回避策として、あなたがデフォルトを知っているので、あなたは、オブジェクトとして、それらを格納することができますし、条件がスクリプトで満たされたときにそれらを設定します。

function resetHeadings() { 
    var body = DocumentApp.getActiveDocument().getBody(); 

    // store an object with default object attributes you can apply later 
    var defaults = { 
    "Heading 1": { 
     FONT_SIZE: 20, 
     FONT_FAMILY: 'Arial', 
    }, 
    "Heading 2": { 
     FONT_SIZE: 16, 
     FONT_FAMILY: 'Arial' 
    } 
    }; 

    var pars = body.getParagraphs(); 

    for(var i in pars) { 
    var props = pars[i].getAttributes(); 
    if(props["HEADING"] == "Heading 1") { 

     // reset the Heading to normal 
     props[i].setHeading(DocumentApp.ParagraphHeading.NORMAL); 

     // Then, spoof with your stored defaults 
     // You can chain .setAttributes() with the line above. Shown separate for clarity. 
     props[i].setAttributes(defaults["Heading 1"]); 
    } 
    } 
} 

それは完璧ではないのですが、それはあなたが記述している結果が得られます。複数のif文ではなく、各見出しに対してcase/switchテストを使用できます。

関連する問題