2014-11-28 4 views
0

Я разрабатываю аддон для Документов, и вам нужно установить текст на иврите справа налево. Я попытался использовать setLeftRight function как с «истинным», так и «ложным», но никто не установил правильный текст.
Как настроить текстовое направление на RTL?Настройка направления текста в скриптах Google

Edit: Пример кода:

Code: var cells = [ ["EnglishTitle", "HebrewTitle"], ["Text", ""] ]; 
var tableStyle = {}; 
tableStyle[DocumentApp.Attribute.FONT_FAMILY] = DocumentApp.FontFamily.TIMES_NEW_ROMAN; 
tableStyle[DocumentApp.Attribute.FONT_SIZE] = 12; 
var doc = DocumentApp.getActiveDocument().getBody(); 
doc.appendTable(cells).setAttributes(tableStyle).getCell(1,1).insertParagraph(0, "HebrewText").setLeftToRight(false); 

ответ

0

Этот код работает, чтобы установить текст справа налево:

function setRightToLeft() { 
var doc = DocumentApp.getActiveDocument(); 
var body = doc.getBody(); 
var par = body.getParagraphs(); 
par[0].setLeftToRight(false); 
} 

Примечание: Вы должны указать конкретный пункт, который вы хотите установить справа налево , или пропустите все абзацы, чтобы установить их таким образом.

Edit:

Как вы уже упоминал ниже, как представляется, проблема с экранирующим символом «\ п» отвод вверх справа налево текст. Я задокументировал проблему here для обзора Google, и, надеюсь, они ее подберут, но вам нужно будет заглянуть в нее, чтобы увидеть, получает ли она какую-либо тягу.

Обходной путь здесь не использует escape-символ в методе '.insertParagraph(). Вместо этого используйте это только для вставки абзаца, а затем используйте метод .appendText() для добавления текста. Например, это работает правильно для всего добавленного в методе '.appendText()':

function table(){ 
    Code: var cells = [ ["EnglishTitle", "HebrewTitle"], ["Text", ""] ]; 
    var tableStyle = {}; 
    tableStyle[DocumentApp.Attribute.FONT_FAMILY] = DocumentApp.FontFamily.TIMES_NEW_ROMAN; 
    tableStyle[DocumentApp.Attribute.FONT_SIZE] = 12; 
    var doc = DocumentApp.getActiveDocument().getBody(); 
    doc.appendTable(cells).setAttributes(tableStyle).getCell(1,1).insertParagraph(0, "Top line not moved. \nText Should Be Right to left, but it's not, \nThis text is correctly on the right.").setLeftToRight(false).appendText('\nThis is the appended text,\ncorrectly set right to left.'); 
} 
+0

Правильно, я попробовал setLeftToRight с обоими значениями, но это не сработало. У меня есть таблица 2x2, и я помещаю абзац в 2 строку, 2 ячейки на иврите, но он не работает. @HDCerberus – shman613

+0

Если вы не разместите образец кода, который не работает, есть ограниченная помощь, которая может быть предоставлена, но похоже, что вы не сможете указать текст как R-> L только в одной ячейке таблицы. – HDCerberus

+0

Код: var cells = [ ["EnglishTitle", "HebrewTitle"], ["Текст", ""] ]; var tableStyle = {}; tableStyle [DocumentApp.Attribute.FONT_FAMILY] = DocumentApp.FontFamily.TIMES_NEW_ROMAN; таблицаStyle [DocumentApp.Attribute.FONT_SIZE] = 12; var doc = DocumentApp.getActiveDocument(). GetBody(); doc.appendTable (cells) .setAttributes (tableStyle) .getCell (1,1) .insertParagraph (0, «HebrewText»). SetLeftToRight (false); @HDCerberus – shman613

-1

Real Fix

Обходной дается here, на Scripts вопросам сайта Google.

+0

Рассмотрите это: @HDCerberus – shman613

+0

Ох ... это был ты .... :) :) Спасибо за красивое обходное решение. @HDCerberus – shman613

Смежные вопросы