2017-11-14 14 views
1

スクリプトを使用してGoogleドキュメントの右端に画像を配置しようとしています。私は左オフセットのためにこの計算を持っている:イメージを右端に配置するにはどうすればよいですか?

body.getPageWidth()-body.getMarginRight()-body.getMarginLeft()-myImage.imageWidth 

これは一貫マージンの内側インチの画像5/8を配置します。私はラップされたイメージの周りの自動マージンと関連するかもしれないと思いましたか?私はそれを制御する方法を見つけることができませんPositionedImageのドキュメントです。

左のオフセットの計算に余分な要素がありますか?他に何か許さないのですか?画像を配置するために使用できる別の方法がありますか?

答えて

1

画像はすでにPositionedImageですか - PositionedImageに移動しましたか?または選択がありますか?それがInlineImageであれば、その後、getParent()setAttributes()LEFT_TO_RIGHTとすることができます。それは右マージンに対して再配置されます。

function imgRight() { 
    var doc = DocumentApp.getActiveDocument() 
    var body = doc.getBody() 
    // Get the first inline image in the doc.body 
    var img_container = body.getImages()[0].getParent() 

    // Set the ContainerElement to right_to_left 
    img_container.setAttributes({LEFT_TO_RIGHT:false}) 
} 

編集および更新:問題PositionedImage.LeftOffsetための計算では、image.getWidth()pixelspointsmarginspage sizeの幅を返すことです。 Convert the img pixels to pointsとなり、オフセット計算は次のようになります。

var body = DocumentApp.getActiveDocument().getBody(); 
var body_attributes = body.getAttributes(); 

var img = body.getParagraphs()[0].getPositionedImages()[0]; 
var img_width = img.getWidth(); 
var img_in_points = img_width * 72/96; 
var current_img_offset = img.getLeftOffset(); 

var offset = body_attributes.PAGE_WIDTH - body_attributes.MARGIN_RIGHT - body_attributes.MARGIN_LEFT - img_in_points + current_img_offset; 
+0

ありがとう!テキストをラップするには、PositionedImageである必要があります。私がこれを行い、その後PositionedImageに変換すると、それはその位置を保持するでしょうか? –

+0

更新されたコード - 画像の幅をポイントに変換する必要があります。これは余白とページサイズが返すものです –

関連する問題