Google Apps Script не может скопировать маркеры из одного документа в другой документ - PullRequest
1 голос
/ 24 апреля 2019

После этого кода я использую Google Apps Script для добавления шаблона документа в другой документ.Шаблон имеет списки маркеров, однако они будут потеряны при копировании, а отступы будут сохранены правильно.

Ссылка на шаблон

Код:

     var newDoc = DocumentApp.openById('anotherGoogleID');
      var newDocBody = newDoc.getBody();
      var templateBody = DocumentApp.openById('aGoogleID').getActiveSection();
 // has bullets
          var totalElements = templateBody.getNumChildren();
          newDocBody.appendPageBreak();
          for( var j = 0; j < totalElements; ++j ) {
            var element = otherBody.getChild(j).copy();
            var type = element.getType();
            if( type == DocumentApp.ElementType.PARAGRAPH )
              newDocBody.appendParagraph(element);
            else if( type == DocumentApp.ElementType.TABLE )
              newDocBody.appendTable(element);
            else if( type == DocumentApp.ElementType.LIST_ITEM )
              newDocBody.appendListItem(element);
            else
              throw new Error("Unknown element type: "+type);
          }
    newDocBody.saveAndClose()

1 Ответ

0 голосов
/ 26 апреля 2019

Следуя этому примеру , я изменил код следующим образом:

var newDoc = DocumentApp.openById('anotherGoogleID');
      var newDocBody = newDoc.getBody();
      var templateBody = DocumentApp.openById('aGoogleID').getActiveSection();
 // has bullets
          var totalElements = templateBody.getNumChildren();
          newDocBody.appendPageBreak();
          for( var j = 0; j < totalElements; ++j ) {
            var element = otherBody.getChild(j).copy();
            var type = element.getType();
            if( type == DocumentApp.ElementType.PARAGRAPH )
              newDocBody.appendParagraph(element);
            else if( type == DocumentApp.ElementType.TABLE )
              newDocBody.appendTable(element);
            else if( type == DocumentApp.ElementType.LIST_ITEM )
               { newDocBody.appendListItem(element); 
                 var glyphType = element.getGlyphType(); 
                 element.setGlyphType(glyphType); 
                 }
            else
              throw new Error("Unknown element type: "+type);
          }
    newDocBody.saveAndClose()

Теперь создаются некоторые маркеры, но вместо букв используются кружки, а не буквы ....

...