我正在为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);
答案 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)
Google脚本问题网站上提供了 here, 的解决方法。