如何将LibreOffice设置为使用波斯/阿拉伯文/印地文页码?

SeMeKh

我希望在LibreOffice Impress中使用页码为波斯语。意思是۰۱۲۳۴۵۶۷۸۹,而不是0123456789。

chaskes

这些设置适用于所有LibreOffice应用程序和文档,因此您可以从任何一组应用程序进行更改。

变更地区

您可以将波斯语设置为所有文档的默认值,或仅将当前文档设置为默认值。

在菜单栏中,工具>>选项,然后展开语言设置并单击语言。

在此处输入图片说明

语言环境更改为波斯语。(请注意,这与上面的用户界面设置无关。)

CTL更改Default-Farsi这还将自动在下面选中“复杂文本布局(CTL)为启用”CTL处理从右到左的语言。

根据您的喜好检查当前文档

更改全局数字样式

单击对话框左侧的“复杂文本布局”,然后将数字更改为Hindi(此屏幕快照中未显示)

使用“插入>>页码”显示“页眉/页脚”对话框,以便将页码添加到幻灯片中。

在“语言设置中将数字设置为印地语后,您无需使用Ibus等输入法编辑器即可使用“阿拉伯”数字。在这种情况下,当然,阿拉伯语数字是1,2,3 ...

是否可以在幻灯片页脚页码功能中使用印地语数字而无需将每个数字都更改为印地语?

简短的答案:不通过GUI设置。除了全局编号样式设置外,似乎没有任何方法可以修改插入页码的功能。

有趣的是,页脚使您可以轻松地将日期更改为波斯语。我相信不能以类似的方式更改页码,因为页码似乎是从要与打印机一起使用的功能中绘制的。

解决方案是完全不使用内置的页脚页码,而是将自己的文本形状插入到同一区域,并以所需的方式设置文本。对于少量幻灯片,这还不错。但只有少数几个是不可行的。

解决问题的方法是使用LibreOffice Basic宏为您插入页码。有关LibreOffice宏以及如何在文档中使用它们的简短概述,请参见此答案

这是宏代码:

Sub AddPersianPageNumbers

    Dim Doc as Object
    Set Doc = ThisComponent

    'Get the collection of DrawingPages
    Dim DrwPages as Object
    Set DrwPages = Doc.getDrawPages()

    Dim DrwPg as Object
    Dim TxtShp as Object
    Dim TxtPoint as New com.sun.star.awt.Point

    Dim i as Long
    Dim k as Long

    Dim strNum as string
    Dim strI as string
    Dim idx as long
    Dim uni as string

    'Each slide has it's own Drawpage, so go through the collection
    For i = 0 to DrwPages.getCount() - 1

        'Get the Drawing Page and create a TextShape    
        Set DrwPg = DrwPages.getByIndex(i)
        Set TxtShp = Doc.createInstance("com.sun.star.drawing.TextShape")

        'Add it to the Drawing Page (must do first)
        DrwPg.Add(TxtShp)   

        TxtPoint.X = DrwPg.Width * 0.9
        TxtPoint.Y = DrwPg.Height * 0.9

        TxtShp.Position = TxtPoint  
        TxtShp.TextAutoGrowWidth = true
        TxtShp.TextAutoGrowHeight = true

        'Just changing the font is not enough since it will still show as Arabic
        'You can change the locale and ComplexText props for just this para
        'but I couldn't find a way to set the para to be seen as ComplexText
        'That would have been elegant, but instead just convert
        'the page number to a string converted from the Unicode code points 

        strI = Cstr(i + 1)

        for k = 1 to Len(strI)
            uni =  "&H66" & mid(strI, k, 1) 'Hindi numeral code points are ascii+660
            strNum = strNum & Chr(uni)
        next k

        TxtShp.SetString(strNum)
        strNum = ""

        TxtShp.CharFontName = "Lohit Hindi"

    Next i  


End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

阿拉伯文检索数据

阿拉伯文显示问题

使用Python将字典中的阿拉伯文单词数字与相应数字匹配

如何处理bash脚本中包含阿拉伯文,中文,印地文字符的“ YouTube文件名”?

更新:收集阿拉伯文推文,并使用python将其保存在csv中

在希伯来语字母上放置阿拉伯文

Flash Professional阿拉伯文TextAria支持

IIS上的WordPress阿拉伯文永久链接

阿拉伯文的斜体文字-JavaFX

PHP阿拉伯文装饰字母

php 将阿拉伯文与英文字符分开

如何以英文和阿拉伯文顯示日期格式?

如何将条形码读取的文本转换为阿拉伯文本

如何将阿拉伯文本转换为十六进制

如何在Office Word 365中将页码的数字更改为波斯语或阿拉伯语

如何检查阿拉伯/波斯字符是否为小写?

JavaScript:输入文字时,可快速将印地文数字转换为阿拉伯数字

Android-涵盖阿拉伯文/ RTL的EditText的键盘

英文/阿拉伯文方向支持 React-Native

Java无法读取阿拉伯文RSS,它给了我符号

Unity3d iTextSharp阿拉伯文PDF报告

为什么不能将阿拉伯文csv文件导入SQL Server?

iPad mini阿拉伯文页面中的白色补丁

从右到左串联英文和阿拉伯文不正确

Swift-根据阿拉伯文合并字符分割文本

如何将阿拉伯文字从PyQt4转换为UTF-8

Android:如何将整个应用程序的数字格式更改为印地语格式(东方阿拉伯数字)?

阿拉伯文字在mysql中显示为问号

在java中使用setter方法设置文本后,阿拉伯文本被反转