在Google脚本中设置文字方向

时间:2014-11-28 01:18:19

标签: google-apps-script google-docs hebrew

我正在为Docs开发一个插件,需要从右到左设置一些希伯来语文本。我尝试使用setLeftRight function同时使用' true'并且' false',但没有人会以正确的方式设置文本。
如何将文本方向设置为RTL?

编辑:示例代码:

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);

2 个答案:

答案 0 :(得分:0)

此代码用于将文本从右向左设置:

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

注意:您需要指定要从右向左设置的特定段落,或循环遍历所有段落以将其设置为所有方式。

修改:

正如您在下面提到的那样,转义字符似乎存在问题' \ n'弄乱右到左文本。我已将此问题here记录在案,供Google审核,希望他们能够捡起来,但是您需要对其进行评论,看看它是否能获得任何牵引力。

这里的解决方法是不使用' .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.');
}

答案 1 :(得分:-1)

Real Fix

Google脚本问题网站上提供了 here, 的解决方法。