Проблема с RTL в Google Docs Preview в Android - PullRequest
1 голос
/ 01 мая 2019

Когда я пытаюсь сделать текст справа налево в Google Docs, его предварительный просмотр в каждом браузере Android, когда кто-то не входит, не подходит.Я имею в виду, что браузер Android по-прежнему показывает его в формате слева направо.Конечно, после входа в систему или при использовании приложения Google Docs для Android такой проблемы не возникает.Есть ли решение этой проблемы, например, с помощью Google Apps Script или около того?

Я попробовал этот код, предложенный каким-то другом, но он не работает должным образом!

function makeRight(){
    var body =DocumentApp.getActiveDocument().getBody();
    console.log("HERE BM!")
    //var paraghraphs = DocumentApp.getActiveDocument().getBody().findElement(DocumentApp.ElementType.PARAGRAPH);
    for (var i = 0; i < body.length; i++){
        var ithchild = body.getChild(i)
        if (ithchild.getType() == DocumentApp.ElementType.PARAGRAPH){
            ithchild.setAlignment(DocumentApp.HorizontalAlignment.RIGHT);
        }
    }
}

1 Ответ

0 голосов
/ 01 мая 2019

Похоже, вы пытаетесь запустить оператор for на body.length, но это не возвращает число, поэтому оператор for даже не выполняется.

Я взял ваш код и внес некоторые изменения, а затем протестировал их на своем собственном Документе Google. Кажется, что приведенный ниже код работает, как вы ожидаете.

function makeRight() {
  var body = DocumentApp.getActiveDocument().getBody();
  var numChildren = body.getNumChildren(); //gets number of children for body

  //for each child of body, run the below code
  for (var i = 0; i < numChildren; i++) {
    var ithchild = body.getChild(i).asParagraph();
    if (ithchild.getType() == DocumentApp.ElementType.PARAGRAPH) {
      ithchild.setAlignment(DocumentApp.HorizontalAlignment.RIGHT);
    }
  }
}

Вместо того, чтобы пытаться запустить код для "body.length", я определил "numChildren", который получает число дочерних элементов для всего документа и возвращает его как целое число:

var numChildren = body.getNumChildren(); //gets number of children for body

Вам также необходимо получить переменную "ithchild" в качестве абзаца, поэтому я добавил asParagraph () к этой строке:

var ithchild = body.getChild(i).asParagraph();

Затем его можно использовать для выполнения оператора for для всего документа:

for (var i = 0; i < numChildren; i++) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...