gpt4 book ai didi

java - iText:使用 FontSelector 处理字符串后比较字体

转载 作者:行者123 更新时间:2023-12-02 03:58:44 25 4
gpt4 key购买 nike

tl;博士:在 iText 中,有没有办法访问字体的名称,或者找出已从 FontSelector 应用于短语的字体的语言?

<小时/>

这个问题与我们一直在 printwikipedia project 遇到的问题有关。 ---github -- issue .

我无法控制进入 FontSelector 进行处理的文本正文。其中一些文本是阿拉伯语,一些是希伯来语,我正在尝试找出检测字体类型的最佳方法,以便使其正确打印,如下所示:http://developers.itextpdf.com/question/how-create-persian-content-pdf使用

pdfCell.setRunDirection(PdfWriter.RUN_DIRECTION_RTL);

通过 FontSelector 运行字符串以成为短语,然后将它们放入使用上面的代码格式化的单元格中,所有文本最终都在右侧。

此文本的格式非常重要,因此我不能将所有文本都向右对齐,但只有当它要从右向左阅读时才如此。因此,我认为最好的做法应该是检测已应用于短语的字体,然后在必要时更改单元格。

public FontSelector fs = new FontSelector();
// add a whole lot of fonts to fs
// incoming line of some sort of text
Phrase ph = fs.process(line);
System.out.println(ph.getFont().toString());

上面的代码将输出一些极其不同的结果。为每段文本创建的每种字体几乎都有一个新的 ID。我无法找到一种方法来将 fontselector 对象中存在的字体与已应用于传入文本的字体进行比较。

这是确定短语中的字体的最佳方法吗?

如何访问字体的名称,或找出已从 FontSelector 应用于短语的字体的语言?

最佳答案

我浏览了itext documentation更仔细一点,发现了我的答案。

PhrasesChunks 组成其中包含字体。如果一个简单的方法对输出短语执行 .getChunks() 命令,然后对 block 进行迭代器,那么它们可以通过对数组列表中的 block 执行 .getFont() 来比较字体,然后继续应用您希望从那里应用的任何样式。

关于java - iText:使用 FontSelector 处理字符串后比较字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35144463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com