代码之家  ›  专栏  ›  技术社区  ›  Briony Doyle

如何将图像放置在右边距?

  •  1
  • Briony Doyle  · 技术社区  · 7 年前

    我试着用脚本把一个图像放在谷歌文档的右边空白处。我得到了左偏移的计算结果:

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

    这会将图像始终放置在边距内5/8英寸的位置。我想这可能与包裹图像周围的自动边距有关?不过,我在PositionedImage文档中找不到控制它的方法。

    在计算左偏移量时,是否缺少额外的元素?还有什么我没有考虑的?有没有其他方法可以用来放置图像?

    1 回复  |  直到 7 年前
        1
  •  1
  •   random-parts    7 年前

    图像是否已经是 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() pixels margins page size 在里面 points . 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;