Центрирование в gDoc после замены - PullRequest
0 голосов
/ 07 ноября 2019

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

Я создал стиль для решения всех этих атрибутов (я включал в себя и Horiz. ИVert. Выравнивание) и большая часть работает нормально. Когда строка заменяется, замена имеет правильный шрифт, размер и полужирные атрибуты. По какой-то причине я не могу получить оправдание для изменения.


  // Define the style for the replacement string.
  var hdrStyle = {};
  hdrStyle[DocumentApp.Attribute.HORIZONTAL_ALIGNMENT] = 
  DocumentApp.HorizontalAlignment.CENTER;
  hdrStyle[DocumentApp.Attribute.VERTICAL_ALIGNMENT] = 
  DocumentApp.VerticalAlignment.CENTER;
  hdrStyle[DocumentApp.Attribute.FONT_FAMILY] = 'Calibri'; 
  hdrStyle[DocumentApp.Attribute.FONT_SIZE] = 24;
  hdrStyle[DocumentApp.Attribute.BOLD] = true;


  { then later }

  documentBody = DocumentApp.openById(fileId).getBody();

  hdrElem = documentBody.findText("old string").getElement();            
  hdrText = hdrElem.asText().setText("new string");

  // Force our 'header style':
  hdrElem.setAttributes(hdrStyle);

Я пытался установить стиль после findText и (как здесь) после, но без изменения в центрировании.

Я вижу, что есть центрирование абзаца, но мне не ясно, как "получить" абзац, связанный с элементом, возвращаемым при поиске.

Я надеюсь, что это какой-топростой набор звонков - но исчерпали идеи (и терпение) ..!

Любая помощь будет оценена!

1 Ответ

0 голосов
/ 07 ноября 2019

Вы можете использовать getParent () в hdrElem, чтобы получить родительский абзац, к которому будет применен стиль.

https://developers.google.com/apps-script/reference/document/text#getParent()

documentBody = DocumentApp.openById(fileId).getBody();

hdrElem = documentBody.findText("old string").getElement();            
hdrText = hdrElem.asText().setText("new string");

var hdrParent = hdrElem.getParent()

// Force our 'header style':
hdrParent.setAttributes(hdrStyle);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...